svelte-firekit 0.1.9 → 0.2.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 (439) hide show
  1. package/README.md +550 -354
  2. package/dist/components/AuthGuard.svelte +64 -0
  3. package/dist/components/AuthGuard.svelte.d.ts +15 -0
  4. package/dist/components/Collection.svelte +62 -0
  5. package/dist/components/Collection.svelte.d.ts +39 -0
  6. package/dist/components/CustomGuard.svelte +87 -0
  7. package/dist/components/CustomGuard.svelte.d.ts +13 -0
  8. package/dist/components/Doc.svelte +56 -0
  9. package/dist/components/Doc.svelte.d.ts +36 -0
  10. package/dist/components/DownloadURL.svelte +48 -0
  11. package/dist/components/DownloadURL.svelte.d.ts +14 -0
  12. package/dist/components/FirebaseApp.svelte +81 -0
  13. package/dist/components/FirebaseApp.svelte.d.ts +12 -0
  14. package/dist/components/Node.svelte +54 -0
  15. package/dist/components/Node.svelte.d.ts +36 -0
  16. package/dist/components/SignedIn.svelte +22 -0
  17. package/dist/components/{firekit/signed-in.svelte.d.ts → SignedIn.svelte.d.ts} +1 -4
  18. package/dist/components/SignedOut.svelte +32 -0
  19. package/dist/components/{firekit/signed-out.svelte.d.ts → SignedOut.svelte.d.ts} +3 -5
  20. package/dist/components/UploadTask.svelte +75 -0
  21. package/dist/components/UploadTask.svelte.d.ts +33 -0
  22. package/dist/config.d.ts +29 -6
  23. package/dist/config.js +37 -74
  24. package/dist/context.d.ts +46 -0
  25. package/dist/context.js +56 -0
  26. package/dist/firebase.d.ts +25 -84
  27. package/dist/firebase.js +75 -125
  28. package/dist/index.d.ts +31 -20
  29. package/dist/index.js +47 -30
  30. package/dist/services/ai.svelte.d.ts +152 -0
  31. package/dist/services/ai.svelte.js +302 -0
  32. package/dist/services/analytics.d.ts +39 -231
  33. package/dist/services/analytics.js +89 -421
  34. package/dist/services/app-check.svelte.d.ts +82 -0
  35. package/dist/services/app-check.svelte.js +159 -0
  36. package/dist/services/auth.d.ts +63 -352
  37. package/dist/services/auth.js +353 -718
  38. package/dist/services/bundles.d.ts +42 -0
  39. package/dist/services/bundles.js +57 -0
  40. package/dist/services/callable.d.ts +57 -0
  41. package/dist/services/callable.js +115 -0
  42. package/dist/services/collection.svelte.d.ts +154 -221
  43. package/dist/services/collection.svelte.js +357 -663
  44. package/dist/services/document.svelte.d.ts +73 -254
  45. package/dist/services/document.svelte.js +196 -497
  46. package/dist/services/in-app-messaging.js +4 -0
  47. package/dist/services/messaging.svelte.d.ts +75 -0
  48. package/dist/services/messaging.svelte.js +190 -0
  49. package/dist/services/mutations.d.ts +59 -282
  50. package/dist/services/mutations.js +202 -951
  51. package/dist/services/performance.d.ts +60 -0
  52. package/dist/services/performance.js +118 -0
  53. package/dist/services/presence.svelte.d.ts +21 -89
  54. package/dist/services/presence.svelte.js +232 -469
  55. package/dist/services/realtime.svelte.d.ts +54 -125
  56. package/dist/services/realtime.svelte.js +111 -175
  57. package/dist/services/remote-config.svelte.d.ts +73 -0
  58. package/dist/services/remote-config.svelte.js +204 -0
  59. package/dist/services/storage.svelte.d.ts +81 -208
  60. package/dist/services/storage.svelte.js +190 -305
  61. package/dist/services/user.svelte.d.ts +23 -244
  62. package/dist/services/user.svelte.js +129 -439
  63. package/dist/types/analytics.d.ts +2 -36
  64. package/dist/types/analytics.js +0 -5
  65. package/dist/types/auth.d.ts +15 -85
  66. package/dist/types/auth.js +0 -17
  67. package/dist/types/collection.d.ts +31 -225
  68. package/dist/types/collection.js +5 -51
  69. package/dist/types/document.d.ts +11 -236
  70. package/dist/types/document.js +2 -47
  71. package/dist/types/firebase.d.ts +10 -13
  72. package/dist/types/firebase.js +3 -9
  73. package/dist/types/index.d.ts +5 -5
  74. package/dist/types/index.js +5 -4
  75. package/dist/types/mutations.d.ts +11 -225
  76. package/dist/types/mutations.js +6 -51
  77. package/dist/types/presence.d.ts +5 -158
  78. package/dist/types/presence.js +0 -20
  79. package/dist/utils/errors.d.ts +10 -14
  80. package/dist/utils/errors.js +11 -16
  81. package/dist/utils/firestore.d.ts +3 -4
  82. package/dist/utils/firestore.js +7 -10
  83. package/dist/utils/index.d.ts +4 -4
  84. package/dist/utils/index.js +4 -8
  85. package/dist/utils/providers.d.ts +4 -13
  86. package/dist/utils/providers.js +14 -13
  87. package/dist/utils/user.d.ts +1 -3
  88. package/dist/utils/user.js +1 -3
  89. package/package.json +41 -55
  90. package/dist/components/docs/doc-content.svelte +0 -19
  91. package/dist/components/docs/doc-content.svelte.d.ts +0 -6
  92. package/dist/components/docs/doc-header.svelte +0 -24
  93. package/dist/components/docs/doc-header.svelte.d.ts +0 -13
  94. package/dist/components/docs/doc-renderer.svelte +0 -27
  95. package/dist/components/docs/doc-renderer.svelte.d.ts +0 -8
  96. package/dist/components/docs/mobile-table-of-contents.svelte +0 -42
  97. package/dist/components/docs/mobile-table-of-contents.svelte.d.ts +0 -3
  98. package/dist/components/docs/table-of-contents.svelte +0 -33
  99. package/dist/components/docs/table-of-contents.svelte.d.ts +0 -4
  100. package/dist/components/docs/toc.svelte.d.ts +0 -16
  101. package/dist/components/docs/toc.svelte.js +0 -59
  102. package/dist/components/firekit/Collection.svelte +0 -122
  103. package/dist/components/firekit/Collection.svelte.d.ts +0 -27
  104. package/dist/components/firekit/Doc.svelte +0 -140
  105. package/dist/components/firekit/Doc.svelte.d.ts +0 -28
  106. package/dist/components/firekit/Node.svelte +0 -97
  107. package/dist/components/firekit/Node.svelte.d.ts +0 -23
  108. package/dist/components/firekit/auth-guard.svelte +0 -120
  109. package/dist/components/firekit/auth-guard.svelte.d.ts +0 -26
  110. package/dist/components/firekit/custom-guard.svelte +0 -163
  111. package/dist/components/firekit/custom-guard.svelte.d.ts +0 -31
  112. package/dist/components/firekit/download-url.svelte +0 -92
  113. package/dist/components/firekit/download-url.svelte.d.ts +0 -19
  114. package/dist/components/firekit/firebase-app.svelte +0 -33
  115. package/dist/components/firekit/firebase-app.svelte.d.ts +0 -7
  116. package/dist/components/firekit/node-list.svelte +0 -102
  117. package/dist/components/firekit/node-list.svelte.d.ts +0 -27
  118. package/dist/components/firekit/signed-in.svelte +0 -42
  119. package/dist/components/firekit/signed-out.svelte +0 -42
  120. package/dist/components/firekit/storage-list.svelte +0 -97
  121. package/dist/components/firekit/storage-list.svelte.d.ts +0 -26
  122. package/dist/components/firekit/upload-task.svelte +0 -108
  123. package/dist/components/firekit/upload-task.svelte.d.ts +0 -24
  124. package/dist/components/nav/app-sidebar.svelte +0 -175
  125. package/dist/components/nav/app-sidebar.svelte.d.ts +0 -9
  126. package/dist/components/nav/auto-breadcrumb.svelte +0 -41
  127. package/dist/components/nav/auto-breadcrumb.svelte.d.ts +0 -3
  128. package/dist/components/nav/dark-mode-toggle.svelte +0 -17
  129. package/dist/components/nav/dark-mode-toggle.svelte.d.ts +0 -18
  130. package/dist/components/nav/nav-components.svelte +0 -24
  131. package/dist/components/nav/nav-components.svelte.d.ts +0 -11
  132. package/dist/components/nav/nav-main.svelte +0 -45
  133. package/dist/components/nav/nav-main.svelte.d.ts +0 -11
  134. package/dist/components/nav/nav-secondary.svelte +0 -32
  135. package/dist/components/nav/nav-secondary.svelte.d.ts +0 -14
  136. package/dist/components/nav/site-header.svelte +0 -32
  137. package/dist/components/nav/site-header.svelte.d.ts +0 -18
  138. package/dist/components/ui/avatar/avatar-fallback.svelte +0 -17
  139. package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +0 -4
  140. package/dist/components/ui/avatar/avatar-image.svelte +0 -17
  141. package/dist/components/ui/avatar/avatar-image.svelte.d.ts +0 -4
  142. package/dist/components/ui/avatar/avatar.svelte +0 -19
  143. package/dist/components/ui/avatar/avatar.svelte.d.ts +0 -4
  144. package/dist/components/ui/avatar/index.d.ts +0 -4
  145. package/dist/components/ui/avatar/index.js +0 -6
  146. package/dist/components/ui/badge/badge.svelte +0 -50
  147. package/dist/components/ui/badge/badge.svelte.d.ts +0 -32
  148. package/dist/components/ui/badge/index.d.ts +0 -2
  149. package/dist/components/ui/badge/index.js +0 -2
  150. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +0 -23
  151. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +0 -5
  152. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +0 -20
  153. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +0 -5
  154. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +0 -31
  155. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +0 -11
  156. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +0 -23
  157. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +0 -5
  158. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +0 -23
  159. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +0 -5
  160. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +0 -27
  161. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +0 -5
  162. package/dist/components/ui/breadcrumb/breadcrumb.svelte +0 -21
  163. package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +0 -5
  164. package/dist/components/ui/breadcrumb/index.d.ts +0 -8
  165. package/dist/components/ui/breadcrumb/index.js +0 -10
  166. package/dist/components/ui/button/button.svelte +0 -80
  167. package/dist/components/ui/button/button.svelte.d.ts +0 -58
  168. package/dist/components/ui/button/index.d.ts +0 -2
  169. package/dist/components/ui/button/index.js +0 -4
  170. package/dist/components/ui/card/card-action.svelte +0 -20
  171. package/dist/components/ui/card/card-action.svelte.d.ts +0 -5
  172. package/dist/components/ui/card/card-content.svelte +0 -15
  173. package/dist/components/ui/card/card-content.svelte.d.ts +0 -5
  174. package/dist/components/ui/card/card-description.svelte +0 -20
  175. package/dist/components/ui/card/card-description.svelte.d.ts +0 -5
  176. package/dist/components/ui/card/card-footer.svelte +0 -20
  177. package/dist/components/ui/card/card-footer.svelte.d.ts +0 -5
  178. package/dist/components/ui/card/card-header.svelte +0 -23
  179. package/dist/components/ui/card/card-header.svelte.d.ts +0 -5
  180. package/dist/components/ui/card/card-title.svelte +0 -20
  181. package/dist/components/ui/card/card-title.svelte.d.ts +0 -5
  182. package/dist/components/ui/card/card.svelte +0 -23
  183. package/dist/components/ui/card/card.svelte.d.ts +0 -5
  184. package/dist/components/ui/card/index.d.ts +0 -8
  185. package/dist/components/ui/card/index.js +0 -10
  186. package/dist/components/ui/chart/chart-container.svelte +0 -80
  187. package/dist/components/ui/chart/chart-container.svelte.d.ts +0 -9
  188. package/dist/components/ui/chart/chart-style.svelte +0 -36
  189. package/dist/components/ui/chart/chart-style.svelte.d.ts +0 -8
  190. package/dist/components/ui/chart/chart-tooltip.svelte +0 -159
  191. package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +0 -27
  192. package/dist/components/ui/chart/chart-utils.d.ts +0 -36
  193. package/dist/components/ui/chart/chart-utils.js +0 -33
  194. package/dist/components/ui/chart/index.d.ts +0 -4
  195. package/dist/components/ui/chart/index.js +0 -4
  196. package/dist/components/ui/checkbox/checkbox.svelte +0 -36
  197. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +0 -4
  198. package/dist/components/ui/checkbox/index.d.ts +0 -2
  199. package/dist/components/ui/checkbox/index.js +0 -4
  200. package/dist/components/ui/data-table/data-table.svelte.d.ts +0 -40
  201. package/dist/components/ui/data-table/data-table.svelte.js +0 -110
  202. package/dist/components/ui/data-table/flex-render.svelte +0 -36
  203. package/dist/components/ui/data-table/flex-render.svelte.d.ts +0 -30
  204. package/dist/components/ui/data-table/index.d.ts +0 -3
  205. package/dist/components/ui/data-table/index.js +0 -3
  206. package/dist/components/ui/data-table/render-helpers.d.ts +0 -90
  207. package/dist/components/ui/data-table/render-helpers.js +0 -99
  208. package/dist/components/ui/dialog/dialog-close.svelte +0 -7
  209. package/dist/components/ui/dialog/dialog-close.svelte.d.ts +0 -4
  210. package/dist/components/ui/dialog/dialog-content.svelte +0 -43
  211. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +0 -11
  212. package/dist/components/ui/dialog/dialog-description.svelte +0 -17
  213. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +0 -4
  214. package/dist/components/ui/dialog/dialog-footer.svelte +0 -20
  215. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +0 -5
  216. package/dist/components/ui/dialog/dialog-header.svelte +0 -20
  217. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +0 -5
  218. package/dist/components/ui/dialog/dialog-overlay.svelte +0 -20
  219. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +0 -4
  220. package/dist/components/ui/dialog/dialog-title.svelte +0 -17
  221. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +0 -4
  222. package/dist/components/ui/dialog/dialog-trigger.svelte +0 -7
  223. package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +0 -4
  224. package/dist/components/ui/dialog/index.d.ts +0 -11
  225. package/dist/components/ui/dialog/index.js +0 -14
  226. package/dist/components/ui/drawer/drawer-close.svelte +0 -7
  227. package/dist/components/ui/drawer/drawer-close.svelte.d.ts +0 -4
  228. package/dist/components/ui/drawer/drawer-content.svelte +0 -37
  229. package/dist/components/ui/drawer/drawer-content.svelte.d.ts +0 -7
  230. package/dist/components/ui/drawer/drawer-description.svelte +0 -17
  231. package/dist/components/ui/drawer/drawer-description.svelte.d.ts +0 -4
  232. package/dist/components/ui/drawer/drawer-footer.svelte +0 -20
  233. package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +0 -5
  234. package/dist/components/ui/drawer/drawer-header.svelte +0 -20
  235. package/dist/components/ui/drawer/drawer-header.svelte.d.ts +0 -5
  236. package/dist/components/ui/drawer/drawer-nested.svelte +0 -12
  237. package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +0 -3
  238. package/dist/components/ui/drawer/drawer-overlay.svelte +0 -20
  239. package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +0 -4
  240. package/dist/components/ui/drawer/drawer-title.svelte +0 -17
  241. package/dist/components/ui/drawer/drawer-title.svelte.d.ts +0 -4
  242. package/dist/components/ui/drawer/drawer-trigger.svelte +0 -7
  243. package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +0 -4
  244. package/dist/components/ui/drawer/drawer.svelte +0 -12
  245. package/dist/components/ui/drawer/drawer.svelte.d.ts +0 -3
  246. package/dist/components/ui/drawer/index.d.ts +0 -13
  247. package/dist/components/ui/drawer/index.js +0 -15
  248. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +0 -41
  249. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +0 -9
  250. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +0 -27
  251. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +0 -7
  252. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +0 -22
  253. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +0 -8
  254. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +0 -7
  255. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +0 -4
  256. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +0 -27
  257. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +0 -8
  258. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +0 -24
  259. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +0 -8
  260. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +0 -16
  261. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +0 -4
  262. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +0 -31
  263. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +0 -4
  264. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +0 -17
  265. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +0 -4
  266. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +0 -20
  267. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +0 -5
  268. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +0 -20
  269. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +0 -4
  270. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +0 -29
  271. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +0 -7
  272. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +0 -7
  273. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +0 -4
  274. package/dist/components/ui/dropdown-menu/index.d.ts +0 -25
  275. package/dist/components/ui/dropdown-menu/index.js +0 -17
  276. package/dist/components/ui/input/index.d.ts +0 -2
  277. package/dist/components/ui/input/index.js +0 -4
  278. package/dist/components/ui/input/input.svelte +0 -51
  279. package/dist/components/ui/input/input.svelte.d.ts +0 -13
  280. package/dist/components/ui/label/index.d.ts +0 -2
  281. package/dist/components/ui/label/index.js +0 -4
  282. package/dist/components/ui/label/label.svelte +0 -20
  283. package/dist/components/ui/label/label.svelte.d.ts +0 -4
  284. package/dist/components/ui/scroll-area/index.d.ts +0 -3
  285. package/dist/components/ui/scroll-area/index.js +0 -5
  286. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +0 -31
  287. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +0 -4
  288. package/dist/components/ui/scroll-area/scroll-area.svelte +0 -40
  289. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +0 -10
  290. package/dist/components/ui/select/index.d.ts +0 -11
  291. package/dist/components/ui/select/index.js +0 -14
  292. package/dist/components/ui/select/select-content.svelte +0 -40
  293. package/dist/components/ui/select/select-content.svelte.d.ts +0 -8
  294. package/dist/components/ui/select/select-group-heading.svelte +0 -21
  295. package/dist/components/ui/select/select-group-heading.svelte.d.ts +0 -10
  296. package/dist/components/ui/select/select-group.svelte +0 -7
  297. package/dist/components/ui/select/select-group.svelte.d.ts +0 -4
  298. package/dist/components/ui/select/select-item.svelte +0 -38
  299. package/dist/components/ui/select/select-item.svelte.d.ts +0 -4
  300. package/dist/components/ui/select/select-label.svelte +0 -20
  301. package/dist/components/ui/select/select-label.svelte.d.ts +0 -6
  302. package/dist/components/ui/select/select-scroll-down-button.svelte +0 -20
  303. package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +0 -4
  304. package/dist/components/ui/select/select-scroll-up-button.svelte +0 -20
  305. package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +0 -4
  306. package/dist/components/ui/select/select-separator.svelte +0 -18
  307. package/dist/components/ui/select/select-separator.svelte.d.ts +0 -4
  308. package/dist/components/ui/select/select-trigger.svelte +0 -29
  309. package/dist/components/ui/select/select-trigger.svelte.d.ts +0 -8
  310. package/dist/components/ui/separator/index.d.ts +0 -2
  311. package/dist/components/ui/separator/index.js +0 -4
  312. package/dist/components/ui/separator/separator.svelte +0 -20
  313. package/dist/components/ui/separator/separator.svelte.d.ts +0 -4
  314. package/dist/components/ui/sheet/index.d.ts +0 -11
  315. package/dist/components/ui/sheet/index.js +0 -14
  316. package/dist/components/ui/sheet/sheet-close.svelte +0 -7
  317. package/dist/components/ui/sheet/sheet-close.svelte.d.ts +0 -4
  318. package/dist/components/ui/sheet/sheet-content.svelte +0 -58
  319. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +0 -35
  320. package/dist/components/ui/sheet/sheet-description.svelte +0 -17
  321. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +0 -4
  322. package/dist/components/ui/sheet/sheet-footer.svelte +0 -20
  323. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +0 -5
  324. package/dist/components/ui/sheet/sheet-header.svelte +0 -20
  325. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +0 -5
  326. package/dist/components/ui/sheet/sheet-overlay.svelte +0 -20
  327. package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +0 -4
  328. package/dist/components/ui/sheet/sheet-title.svelte +0 -17
  329. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +0 -4
  330. package/dist/components/ui/sheet/sheet-trigger.svelte +0 -7
  331. package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +0 -4
  332. package/dist/components/ui/sidebar/constants.d.ts +0 -6
  333. package/dist/components/ui/sidebar/constants.js +0 -6
  334. package/dist/components/ui/sidebar/context.svelte.d.ts +0 -42
  335. package/dist/components/ui/sidebar/context.svelte.js +0 -54
  336. package/dist/components/ui/sidebar/index.d.ts +0 -25
  337. package/dist/components/ui/sidebar/index.js +0 -27
  338. package/dist/components/ui/sidebar/sidebar-content.svelte +0 -24
  339. package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +0 -5
  340. package/dist/components/ui/sidebar/sidebar-footer.svelte +0 -21
  341. package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +0 -5
  342. package/dist/components/ui/sidebar/sidebar-group-action.svelte +0 -36
  343. package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +0 -11
  344. package/dist/components/ui/sidebar/sidebar-group-content.svelte +0 -21
  345. package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +0 -5
  346. package/dist/components/ui/sidebar/sidebar-group-label.svelte +0 -34
  347. package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +0 -11
  348. package/dist/components/ui/sidebar/sidebar-group.svelte +0 -21
  349. package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +0 -5
  350. package/dist/components/ui/sidebar/sidebar-header.svelte +0 -21
  351. package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +0 -5
  352. package/dist/components/ui/sidebar/sidebar-input.svelte +0 -21
  353. package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +0 -11
  354. package/dist/components/ui/sidebar/sidebar-inset.svelte +0 -24
  355. package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +0 -5
  356. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +0 -43
  357. package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +0 -12
  358. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +0 -29
  359. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +0 -5
  360. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +0 -103
  361. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +0 -51
  362. package/dist/components/ui/sidebar/sidebar-menu-item.svelte +0 -21
  363. package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +0 -5
  364. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +0 -36
  365. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +0 -8
  366. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +0 -43
  367. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +0 -13
  368. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +0 -21
  369. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +0 -5
  370. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +0 -25
  371. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +0 -5
  372. package/dist/components/ui/sidebar/sidebar-menu.svelte +0 -21
  373. package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +0 -5
  374. package/dist/components/ui/sidebar/sidebar-provider.svelte +0 -53
  375. package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +0 -9
  376. package/dist/components/ui/sidebar/sidebar-rail.svelte +0 -36
  377. package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +0 -5
  378. package/dist/components/ui/sidebar/sidebar-separator.svelte +0 -19
  379. package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +0 -13
  380. package/dist/components/ui/sidebar/sidebar-trigger.svelte +0 -35
  381. package/dist/components/ui/sidebar/sidebar-trigger.svelte.d.ts +0 -8
  382. package/dist/components/ui/sidebar/sidebar.svelte +0 -104
  383. package/dist/components/ui/sidebar/sidebar.svelte.d.ts +0 -10
  384. package/dist/components/ui/skeleton/index.d.ts +0 -2
  385. package/dist/components/ui/skeleton/index.js +0 -4
  386. package/dist/components/ui/skeleton/skeleton.svelte +0 -17
  387. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +0 -5
  388. package/dist/components/ui/table/index.d.ts +0 -9
  389. package/dist/components/ui/table/index.js +0 -11
  390. package/dist/components/ui/table/table-body.svelte +0 -20
  391. package/dist/components/ui/table/table-body.svelte.d.ts +0 -5
  392. package/dist/components/ui/table/table-caption.svelte +0 -20
  393. package/dist/components/ui/table/table-caption.svelte.d.ts +0 -5
  394. package/dist/components/ui/table/table-cell.svelte +0 -20
  395. package/dist/components/ui/table/table-cell.svelte.d.ts +0 -5
  396. package/dist/components/ui/table/table-footer.svelte +0 -20
  397. package/dist/components/ui/table/table-footer.svelte.d.ts +0 -5
  398. package/dist/components/ui/table/table-head.svelte +0 -23
  399. package/dist/components/ui/table/table-head.svelte.d.ts +0 -5
  400. package/dist/components/ui/table/table-header.svelte +0 -20
  401. package/dist/components/ui/table/table-header.svelte.d.ts +0 -5
  402. package/dist/components/ui/table/table-row.svelte +0 -23
  403. package/dist/components/ui/table/table-row.svelte.d.ts +0 -5
  404. package/dist/components/ui/table/table.svelte +0 -22
  405. package/dist/components/ui/table/table.svelte.d.ts +0 -5
  406. package/dist/components/ui/tabs/index.d.ts +0 -5
  407. package/dist/components/ui/tabs/index.js +0 -7
  408. package/dist/components/ui/tabs/tabs-content.svelte +0 -17
  409. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +0 -4
  410. package/dist/components/ui/tabs/tabs-list.svelte +0 -20
  411. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +0 -4
  412. package/dist/components/ui/tabs/tabs-trigger.svelte +0 -20
  413. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +0 -4
  414. package/dist/components/ui/tabs/tabs.svelte +0 -19
  415. package/dist/components/ui/tabs/tabs.svelte.d.ts +0 -4
  416. package/dist/components/ui/toggle/index.d.ts +0 -3
  417. package/dist/components/ui/toggle/index.js +0 -5
  418. package/dist/components/ui/toggle/toggle.svelte +0 -52
  419. package/dist/components/ui/toggle/toggle.svelte.d.ts +0 -43
  420. package/dist/components/ui/toggle-group/index.d.ts +0 -3
  421. package/dist/components/ui/toggle-group/index.js +0 -5
  422. package/dist/components/ui/toggle-group/toggle-group-item.svelte +0 -34
  423. package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +0 -6
  424. package/dist/components/ui/toggle-group/toggle-group.svelte +0 -47
  425. package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +0 -8
  426. package/dist/components/ui/tooltip/index.d.ts +0 -7
  427. package/dist/components/ui/tooltip/index.js +0 -9
  428. package/dist/components/ui/tooltip/tooltip-content.svelte +0 -47
  429. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +0 -7
  430. package/dist/components/ui/tooltip/tooltip-trigger.svelte +0 -7
  431. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +0 -4
  432. package/dist/hooks/is-mobile.svelte.d.ts +0 -4
  433. package/dist/hooks/is-mobile.svelte.js +0 -7
  434. package/dist/services/index.d.ts +0 -9
  435. package/dist/services/index.js +0 -10
  436. package/dist/types/docs.d.ts +0 -67
  437. package/dist/utils.d.ts +0 -15
  438. package/dist/utils.js +0 -44
  439. /package/dist/{types/docs.js → services/in-app-messaging.d.ts} +0 -0
@@ -0,0 +1,32 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import { firekitUser } from '../services/user.svelte.js';
4
+
5
+ /**
6
+ * Renders `children` only when no authenticated user exists (including during loading).
7
+ * Passes a sign-in trigger function to children — wire it up to your auth method of choice.
8
+ *
9
+ * @example
10
+ * <SignedOut>
11
+ * {#snippet children(signIn)}
12
+ * <button onclick={signIn}>Sign in with Google</button>
13
+ * {/snippet}
14
+ * </SignedOut>
15
+ */
16
+ let {
17
+ children,
18
+ onSignIn
19
+ }: {
20
+ children: Snippet<[() => void]>;
21
+ /** Optional callback invoked when the user triggers sign-in from the snippet. */
22
+ onSignIn?: () => void;
23
+ } = $props();
24
+
25
+ function triggerSignIn() {
26
+ onSignIn?.();
27
+ }
28
+ </script>
29
+
30
+ {#if !firekitUser.isAuthenticated && !firekitUser.loading}
31
+ {@render children(triggerSignIn)}
32
+ {/if}
@@ -1,10 +1,8 @@
1
- import type { Auth } from 'firebase/auth';
2
1
  import type { Snippet } from 'svelte';
3
2
  type $$ComponentProps = {
4
- /**
5
- * Children content to render when user is signed out
6
- */
7
- children: Snippet<[Auth]>;
3
+ children: Snippet<[() => void]>;
4
+ /** Optional callback invoked when the user triggers sign-in from the snippet. */
5
+ onSignIn?: () => void;
8
6
  };
9
7
  declare const SignedOut: import("svelte").Component<$$ComponentProps, {}, "">;
10
8
  type SignedOut = ReturnType<typeof SignedOut>;
@@ -0,0 +1,75 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import type { UploadMetadata } from 'firebase/storage';
4
+ import { FirekitUploadTask, type UploadState } from '../services/storage.svelte.js';
5
+
6
+ /**
7
+ * Manages a Firebase Storage upload with reactive progress.
8
+ *
9
+ * Exposes upload controls (pause, resume, cancel) and progress state
10
+ * to the `uploading` snippet.
11
+ *
12
+ * @example
13
+ * ```svelte
14
+ * <UploadTask path="uploads/{file.name}" {file}>
15
+ * {#snippet uploading(task)}
16
+ * <progress value={task.progress} max={100} />
17
+ * <button onclick={task.pause}>Pause</button>
18
+ * {/snippet}
19
+ * {#snippet complete(url)}
20
+ * <img src={url} alt="uploaded" />
21
+ * {/snippet}
22
+ * </UploadTask>
23
+ * ```
24
+ */
25
+ let {
26
+ path,
27
+ file,
28
+ metadata,
29
+ uploading: uploadingSnippet,
30
+ complete: completeSnippet,
31
+ error: errorSnippet
32
+ }: {
33
+ /** Storage destination path. */
34
+ path: string;
35
+ /** File or raw bytes to upload. */
36
+ file: Blob | Uint8Array | ArrayBuffer;
37
+ /** Optional upload metadata (content type, custom metadata, etc.). */
38
+ metadata?: UploadMetadata;
39
+ /**
40
+ * Rendered while the upload is active.
41
+ * Receives an object with `{ progress, state, bytesTransferred, totalBytes, pause, resume, cancel }`.
42
+ */
43
+ uploading?: Snippet<[{
44
+ progress: number;
45
+ state: UploadState;
46
+ bytesTransferred: number;
47
+ totalBytes: number;
48
+ pause: () => void;
49
+ resume: () => void;
50
+ cancel: () => void;
51
+ }]>;
52
+ /** Rendered after a successful upload. Receives the download URL. */
53
+ complete?: Snippet<[string]>;
54
+ /** Rendered on error. */
55
+ error?: Snippet<[Error]>;
56
+ } = $props();
57
+
58
+ const task = new FirekitUploadTask(path, file, metadata);
59
+ </script>
60
+
61
+ {#if task.error && errorSnippet}
62
+ {@render errorSnippet(task.error)}
63
+ {:else if task.completed && completeSnippet && task.downloadURL}
64
+ {@render completeSnippet(task.downloadURL)}
65
+ {:else if task.active && uploadingSnippet}
66
+ {@render uploadingSnippet({
67
+ progress: task.progress,
68
+ state: task.state,
69
+ bytesTransferred: task.bytesTransferred,
70
+ totalBytes: task.totalBytes,
71
+ pause: () => task.pause(),
72
+ resume: () => task.resume(),
73
+ cancel: () => task.cancel()
74
+ })}
75
+ {/if}
@@ -0,0 +1,33 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { UploadMetadata } from 'firebase/storage';
3
+ import { type UploadState } from '../services/storage.svelte.js';
4
+ type $$ComponentProps = {
5
+ /** Storage destination path. */
6
+ path: string;
7
+ /** File or raw bytes to upload. */
8
+ file: Blob | Uint8Array | ArrayBuffer;
9
+ /** Optional upload metadata (content type, custom metadata, etc.). */
10
+ metadata?: UploadMetadata;
11
+ /**
12
+ * Rendered while the upload is active.
13
+ * Receives an object with `{ progress, state, bytesTransferred, totalBytes, pause, resume, cancel }`.
14
+ */
15
+ uploading?: Snippet<[
16
+ {
17
+ progress: number;
18
+ state: UploadState;
19
+ bytesTransferred: number;
20
+ totalBytes: number;
21
+ pause: () => void;
22
+ resume: () => void;
23
+ cancel: () => void;
24
+ }
25
+ ]>;
26
+ /** Rendered after a successful upload. Receives the download URL. */
27
+ complete?: Snippet<[string]>;
28
+ /** Rendered on error. */
29
+ error?: Snippet<[Error]>;
30
+ };
31
+ declare const UploadTask: import("svelte").Component<$$ComponentProps, {}, "">;
32
+ type UploadTask = ReturnType<typeof UploadTask>;
33
+ export default UploadTask;
package/dist/config.d.ts CHANGED
@@ -1,12 +1,35 @@
1
1
  import type { FirebaseOptions } from 'firebase/app';
2
2
  /**
3
- * Pre-initialized Firebase configuration instance.
4
- * Use this to get Firebase configuration options directly.
3
+ * Initialize Firekit with your Firebase project configuration.
4
+ * Must be called once before using any Firekit services.
5
+ *
6
+ * Works in any Svelte 5 project — no SvelteKit dependency required.
7
+ *
8
+ * @example
9
+ * // Plain Svelte 5
10
+ * import { initFirekit } from 'svelte-firekit';
11
+ * initFirekit({ apiKey: '...', authDomain: '...', projectId: '...', ... });
5
12
  *
6
13
  * @example
7
- * import { firebaseConfig } from './firebase-config';
8
- * import { initializeApp } from 'firebase/app';
14
+ * // SvelteKit call in +layout.ts or a dedicated firebase.ts module
15
+ * import { initFirekit } from 'svelte-firekit';
16
+ * import { PUBLIC_FIREBASE_API_KEY, PUBLIC_FIREBASE_PROJECT_ID } from '$env/static/public';
9
17
  *
10
- * const app = initializeApp(firebaseConfig);
18
+ * initFirekit({
19
+ * apiKey: PUBLIC_FIREBASE_API_KEY,
20
+ * authDomain: `${PUBLIC_FIREBASE_PROJECT_ID}.firebaseapp.com`,
21
+ * projectId: PUBLIC_FIREBASE_PROJECT_ID,
22
+ * storageBucket: `${PUBLIC_FIREBASE_PROJECT_ID}.firebasestorage.app`,
23
+ * messagingSenderId: PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
24
+ * appId: PUBLIC_FIREBASE_APP_ID,
25
+ * measurementId: PUBLIC_FIREBASE_MEASUREMENT_ID, // optional, needed only for Analytics
26
+ * });
27
+ */
28
+ export declare function initFirekit(config: FirebaseOptions): void;
29
+ /**
30
+ * Returns the stored Firebase config. Throws if initFirekit() has not been called.
31
+ * @internal Used by FirebaseService — consumers should use initFirekit() instead.
11
32
  */
12
- export declare const firebaseConfig: FirebaseOptions;
33
+ export declare function getFirekitConfig(): FirebaseOptions;
34
+ /** Returns true if initFirekit() has been called. */
35
+ export declare function isFirekitConfigured(): boolean;
package/dist/config.js CHANGED
@@ -1,85 +1,48 @@
1
- import { PUBLIC_FIREBASE_API_KEY, PUBLIC_FIREBASE_AUTH_DOMAIN, PUBLIC_FIREBASE_PROJECT_ID, PUBLIC_FIREBASE_STORAGE_BUCKET, PUBLIC_FIREBASE_MESSAGING_SENDER_ID, PUBLIC_FIREBASE_APP_ID, PUBLIC_FIREBASE_MEASUREMENT_ID } from '$env/static/public';
2
1
  import { isValidFirebaseConfig } from './types/firebase.js';
2
+ let _config = null;
3
3
  /**
4
- * @module FirebaseConfig
5
- */
6
- /**
7
- * Singleton class that manages Firebase configuration.
8
- * Implements the Singleton pattern to ensure only one Firebase config instance exists.
4
+ * Initialize Firekit with your Firebase project configuration.
5
+ * Must be called once before using any Firekit services.
6
+ *
7
+ * Works in any Svelte 5 project — no SvelteKit dependency required.
9
8
  *
10
9
  * @example
11
- * // Get Firebase configuration
12
- * const config = FirebaseConfig.getInstance().getConfig();
10
+ * // Plain Svelte 5
11
+ * import { initFirekit } from 'svelte-firekit';
12
+ * initFirekit({ apiKey: '...', authDomain: '...', projectId: '...', ... });
13
13
  *
14
- * // Initialize Firebase app
15
- * const app = initializeApp(config);
14
+ * @example
15
+ * // SvelteKit call in +layout.ts or a dedicated firebase.ts module
16
+ * import { initFirekit } from 'svelte-firekit';
17
+ * import { PUBLIC_FIREBASE_API_KEY, PUBLIC_FIREBASE_PROJECT_ID } from '$env/static/public';
16
18
  *
17
- * @throws {Error} If any required Firebase configuration variables are missing or invalid
19
+ * initFirekit({
20
+ * apiKey: PUBLIC_FIREBASE_API_KEY,
21
+ * authDomain: `${PUBLIC_FIREBASE_PROJECT_ID}.firebaseapp.com`,
22
+ * projectId: PUBLIC_FIREBASE_PROJECT_ID,
23
+ * storageBucket: `${PUBLIC_FIREBASE_PROJECT_ID}.firebasestorage.app`,
24
+ * messagingSenderId: PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
25
+ * appId: PUBLIC_FIREBASE_APP_ID,
26
+ * measurementId: PUBLIC_FIREBASE_MEASUREMENT_ID, // optional, needed only for Analytics
27
+ * });
18
28
  */
19
- class FirebaseConfig {
20
- static instance;
21
- config;
22
- /**
23
- * Private constructor to prevent direct instantiation.
24
- * Validates all required environment variables are present and creates config.
25
- *
26
- * @private
27
- * @throws {Error} If any required Firebase configuration variables are missing or invalid
28
- */
29
- constructor() {
30
- const config = this.getFirebaseConfig();
31
- if (!isValidFirebaseConfig(config)) {
32
- throw new Error('Invalid Firebase configuration. Please check your environment variables.');
33
- }
34
- this.config = config;
35
- }
36
- /**
37
- * Gets the Firebase configuration from environment variables.
38
- *
39
- * @private
40
- * @returns {Partial<FirebaseEnvVars>} The Firebase configuration
41
- */
42
- getFirebaseConfig() {
43
- return {
44
- apiKey: PUBLIC_FIREBASE_API_KEY,
45
- authDomain: PUBLIC_FIREBASE_AUTH_DOMAIN,
46
- projectId: PUBLIC_FIREBASE_PROJECT_ID,
47
- storageBucket: PUBLIC_FIREBASE_STORAGE_BUCKET,
48
- messagingSenderId: PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
49
- appId: PUBLIC_FIREBASE_APP_ID,
50
- measurementId: PUBLIC_FIREBASE_MEASUREMENT_ID
51
- };
52
- }
53
- /**
54
- * Gets the singleton instance of FirebaseConfig.
55
- * Creates a new instance if one doesn't exist.
56
- *
57
- * @returns {FirebaseConfig} The singleton FirebaseConfig instance
58
- * @throws {Error} If any required Firebase configuration variables are missing or invalid
59
- */
60
- static getInstance() {
61
- if (!FirebaseConfig.instance) {
62
- FirebaseConfig.instance = new FirebaseConfig();
63
- }
64
- return FirebaseConfig.instance;
65
- }
66
- /**
67
- * Gets the Firebase configuration options.
68
- *
69
- * @returns {FirebaseOptions} The Firebase configuration options
70
- */
71
- getConfig() {
72
- return this.config;
29
+ export function initFirekit(config) {
30
+ if (!isValidFirebaseConfig(config)) {
31
+ throw new Error('Invalid Firebase configuration. Required: apiKey, authDomain, projectId, storageBucket, messagingSenderId, appId.');
73
32
  }
33
+ _config = config;
74
34
  }
75
35
  /**
76
- * Pre-initialized Firebase configuration instance.
77
- * Use this to get Firebase configuration options directly.
78
- *
79
- * @example
80
- * import { firebaseConfig } from './firebase-config';
81
- * import { initializeApp } from 'firebase/app';
82
- *
83
- * const app = initializeApp(firebaseConfig);
36
+ * Returns the stored Firebase config. Throws if initFirekit() has not been called.
37
+ * @internal Used by FirebaseService consumers should use initFirekit() instead.
84
38
  */
85
- export const firebaseConfig = FirebaseConfig.getInstance().getConfig();
39
+ export function getFirekitConfig() {
40
+ if (!_config) {
41
+ throw new Error('Firekit is not configured. Call initFirekit(config) before using any Firekit services.');
42
+ }
43
+ return _config;
44
+ }
45
+ /** Returns true if initFirekit() has been called. */
46
+ export function isFirekitConfigured() {
47
+ return _config !== null;
48
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Typed Svelte context getters for Firebase service instances.
3
+ *
4
+ * These must be called during component initialisation (inside `<script>` or a
5
+ * function called synchronously at component init time), after a `<FirebaseApp>`
6
+ * ancestor has set them via `setContext`.
7
+ *
8
+ * For the reactive singleton services (`firekitUser`, `firekitAuth`, etc.) you
9
+ * can also just import them directly — no context needed.
10
+ *
11
+ * @example
12
+ * ```svelte
13
+ * <script lang="ts">
14
+ * import { getFirestoreContext, getAuthContext } from 'svelte-firekit';
15
+ * const db = getFirestoreContext(); // Firestore instance
16
+ * const auth = getAuthContext(); // Auth instance
17
+ * </script>
18
+ * ```
19
+ */
20
+ import type { FirebaseApp } from 'firebase/app';
21
+ import type { Auth } from 'firebase/auth';
22
+ import type { Firestore } from 'firebase/firestore';
23
+ import type { FirebaseStorage } from 'firebase/storage';
24
+ import type { Database } from 'firebase/database';
25
+ import type { Functions } from 'firebase/functions';
26
+ import type { AppCheck } from 'firebase/app-check';
27
+ import type { firekitAnalytics } from './services/analytics.js';
28
+ import type { firekitMessaging } from './services/messaging.svelte.js';
29
+ /** Returns the `FirebaseApp` instance set by `<FirebaseApp>`. */
30
+ export declare function getFirebaseAppContext(): FirebaseApp | undefined;
31
+ /** Returns the Firebase `Auth` instance set by `<FirebaseApp>`. */
32
+ export declare function getAuthContext(): Auth | undefined;
33
+ /** Returns the `Firestore` instance set by `<FirebaseApp>`. */
34
+ export declare function getFirestoreContext(): Firestore | undefined;
35
+ /** Returns the `FirebaseStorage` instance set by `<FirebaseApp>`. */
36
+ export declare function getStorageContext(): FirebaseStorage | undefined;
37
+ /** Returns the Realtime Database `Database` instance set by `<FirebaseApp>`. */
38
+ export declare function getRTDBContext(): Database | undefined;
39
+ /** Returns the Cloud Functions `Functions` instance set by `<FirebaseApp>`. */
40
+ export declare function getFunctionsContext(): Functions | undefined;
41
+ /** Returns the `AppCheck` instance set by `<FirebaseApp>`, or null if App Check is not enabled. */
42
+ export declare function getAppCheckContext(): AppCheck | null | undefined;
43
+ /** Returns the `firekitAnalytics` singleton set by `<FirebaseApp>`. */
44
+ export declare function getAnalyticsContext(): typeof firekitAnalytics | undefined;
45
+ /** Returns the `firekitMessaging` singleton set by `<FirebaseApp>`. */
46
+ export declare function getMessagingContext(): typeof firekitMessaging | undefined;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Typed Svelte context getters for Firebase service instances.
3
+ *
4
+ * These must be called during component initialisation (inside `<script>` or a
5
+ * function called synchronously at component init time), after a `<FirebaseApp>`
6
+ * ancestor has set them via `setContext`.
7
+ *
8
+ * For the reactive singleton services (`firekitUser`, `firekitAuth`, etc.) you
9
+ * can also just import them directly — no context needed.
10
+ *
11
+ * @example
12
+ * ```svelte
13
+ * <script lang="ts">
14
+ * import { getFirestoreContext, getAuthContext } from 'svelte-firekit';
15
+ * const db = getFirestoreContext(); // Firestore instance
16
+ * const auth = getAuthContext(); // Auth instance
17
+ * </script>
18
+ * ```
19
+ */
20
+ import { getContext } from 'svelte';
21
+ /** Returns the `FirebaseApp` instance set by `<FirebaseApp>`. */
22
+ export function getFirebaseAppContext() {
23
+ return getContext('firebase/app');
24
+ }
25
+ /** Returns the Firebase `Auth` instance set by `<FirebaseApp>`. */
26
+ export function getAuthContext() {
27
+ return getContext('firebase/auth');
28
+ }
29
+ /** Returns the `Firestore` instance set by `<FirebaseApp>`. */
30
+ export function getFirestoreContext() {
31
+ return getContext('firebase/firestore');
32
+ }
33
+ /** Returns the `FirebaseStorage` instance set by `<FirebaseApp>`. */
34
+ export function getStorageContext() {
35
+ return getContext('firebase/storage');
36
+ }
37
+ /** Returns the Realtime Database `Database` instance set by `<FirebaseApp>`. */
38
+ export function getRTDBContext() {
39
+ return getContext('firebase/rtdb');
40
+ }
41
+ /** Returns the Cloud Functions `Functions` instance set by `<FirebaseApp>`. */
42
+ export function getFunctionsContext() {
43
+ return getContext('firebase/functions');
44
+ }
45
+ /** Returns the `AppCheck` instance set by `<FirebaseApp>`, or null if App Check is not enabled. */
46
+ export function getAppCheckContext() {
47
+ return getContext('firebase/app-check');
48
+ }
49
+ /** Returns the `firekitAnalytics` singleton set by `<FirebaseApp>`. */
50
+ export function getAnalyticsContext() {
51
+ return getContext('firebase/analytics');
52
+ }
53
+ /** Returns the `firekitMessaging` singleton set by `<FirebaseApp>`. */
54
+ export function getMessagingContext() {
55
+ return getContext('firebase/messaging');
56
+ }
@@ -1,14 +1,13 @@
1
1
  import { FirebaseServiceStatus, type FirebaseServiceInstance } from './types/firebase.js';
2
+ import type { AppCheck } from 'firebase/app-check';
3
+ import type { RemoteConfig } from 'firebase/remote-config';
2
4
  /**
3
- * Singleton service class that manages Firebase service instances.
4
- * Handles initialization and access to Firebase app and its various services.
5
+ * Singleton service that manages all Firebase service instances.
6
+ * Services are initialized lazily they spin up only when first accessed.
5
7
  *
6
- * @example
7
- * // Get Firestore instance
8
- * const db = firebaseService.getDbInstance();
9
- *
10
- * // Get Auth instance
11
- * const auth = firebaseService.getAuthInstance();
8
+ * Core services (Firestore, Auth, Functions, RTDB, Storage) are always available.
9
+ * Browser-only services (Analytics, Performance, Messaging) check the environment.
10
+ * Security services (AppCheck, RemoteConfig) are initialized by their dedicated service files.
12
11
  */
13
12
  declare class FirebaseService implements FirebaseServiceInstance {
14
13
  private static instance;
@@ -19,108 +18,50 @@ declare class FirebaseService implements FirebaseServiceInstance {
19
18
  database: FirebaseServiceInstance['database'];
20
19
  storage: FirebaseServiceInstance['storage'];
21
20
  analytics: FirebaseServiceInstance['analytics'];
21
+ appCheck: AppCheck | null;
22
+ remoteConfig: RemoteConfig | null;
23
+ performance: FirebaseServiceInstance['performance'];
24
+ messaging: FirebaseServiceInstance['messaging'];
22
25
  status: FirebaseServiceStatus;
23
26
  initializationError: Error | null;
24
27
  readonly isBrowser: boolean;
25
- /** @private */
26
28
  private constructor();
27
- /**
28
- * Gets the singleton instance of FirebaseService.
29
- * Creates a new instance if one doesn't exist.
30
- *
31
- * @returns {FirebaseService} The singleton FirebaseService instance
32
- */
33
29
  static getInstance(): FirebaseService;
34
- /**
35
- * Gets the current status of the Firebase service
36
- *
37
- * @returns {FirebaseServiceStatus} The current service status
38
- */
39
30
  getStatus(): FirebaseServiceStatus;
40
- /**
41
- * Gets the initialization error if any occurred
42
- *
43
- * @returns {Error | null} The initialization error or null if none occurred
44
- */
45
31
  getInitializationError(): Error | null;
46
- /**
47
- * Initializes or retrieves the Firebase app instance.
48
- * Also initializes Firestore if running in browser environment.
49
- *
50
- * @returns {FirebaseApp} The Firebase app instance
51
- * @throws {FirebaseServiceError} If initialization fails
52
- */
53
32
  getFirebaseApp(): FirebaseServiceInstance['firebaseApp'];
54
- /**
55
- * Initializes Firestore with persistent cache and multi-tab support.
56
- * Only runs in browser environment.
57
- *
58
- * @private
59
- * @throws {FirebaseServiceError} If Firestore initialization fails
60
- */
61
33
  private initializeFirestoreInstance;
62
- /**
63
- * Gets the Firestore instance, initializing it if necessary.
64
- *
65
- * @returns {Firestore} The Firestore instance
66
- * @throws {FirebaseServiceError} If Firestore is not available
67
- */
68
34
  getDbInstance(): FirebaseServiceInstance['db'];
69
- /**
70
- * Gets the Authentication instance, initializing it if necessary.
71
- *
72
- * @returns {Auth} The Authentication instance
73
- * @throws {FirebaseServiceError} If Auth initialization fails
74
- */
75
35
  getAuthInstance(): FirebaseServiceInstance['auth'];
76
- /**
77
- * Gets the Cloud Functions instance, initializing it if necessary.
78
- *
79
- * @returns {Functions} The Cloud Functions instance
80
- * @throws {FirebaseServiceError} If Functions initialization fails
81
- */
82
36
  getFunctionsInstance(): FirebaseServiceInstance['functions'];
37
+ getDatabaseInstance(): FirebaseServiceInstance['database'];
38
+ getStorageInstance(): FirebaseServiceInstance['storage'];
83
39
  /**
84
- * Gets the Realtime Database instance, initializing it if necessary.
85
- *
86
- * @returns {Database} The Realtime Database instance
87
- * @throws {FirebaseServiceError} If Database initialization fails
40
+ * Gets the Analytics instance. Returns null if analytics is not supported
41
+ * (e.g. no measurementId in config, ad-blockers, SSR).
88
42
  */
89
- getDatabaseInstance(): FirebaseServiceInstance['database'];
43
+ getAnalyticsInstance(): Promise<FirebaseServiceInstance['analytics']>;
90
44
  /**
91
- * Gets the Storage instance, initializing it if necessary.
92
- *
93
- * @returns {FirebaseStorage} The Storage instance
94
- * @throws {FirebaseServiceError} If Storage initialization fails
45
+ * Gets the Performance Monitoring instance. Browser-only.
95
46
  */
96
- getStorageInstance(): FirebaseServiceInstance['storage'];
47
+ getPerformanceInstance(): FirebaseServiceInstance['performance'];
97
48
  /**
98
- * Gets the Analytics instance, initializing it if necessary.
99
- * Only available in browser environment.
100
- *
101
- * @returns {Analytics} The Analytics instance
102
- * @throws {FirebaseServiceError} If Analytics initialization fails
49
+ * Gets the Cloud Messaging instance. Returns null if not supported
50
+ * (requires HTTPS, service workers, and browser support).
103
51
  */
104
- getAnalyticsInstance(): FirebaseServiceInstance['analytics'];
52
+ getMessagingInstance(): Promise<FirebaseServiceInstance['messaging']>;
105
53
  /**
106
- * Resets the Firebase service to its initial state.
107
- * Useful for testing or when you need to reinitialize the services.
108
- *
109
- * @returns {Promise<void>}
54
+ * Resets all service instances. Primarily useful for testing.
110
55
  */
111
56
  reset(): Promise<void>;
112
57
  }
113
58
  /**
114
- * Pre-initialized Firebase service instance.
115
- * Use this to access Firebase services directly.
59
+ * The global Firebase service singleton.
60
+ * Access Firebase service instances through this object.
116
61
  *
117
62
  * @example
118
- * import { firebaseService } from './firebase-service';
119
- *
120
- * // Get Firestore
63
+ * import { firebaseService } from 'svelte-firekit';
121
64
  * const db = firebaseService.getDbInstance();
122
- *
123
- * // Get Auth
124
65
  * const auth = firebaseService.getAuthInstance();
125
66
  */
126
67
  export declare const firebaseService: FirebaseService;