svelte-firekit 0.1.8 → 0.2.0

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 (440) 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 +32 -20
  29. package/dist/index.js +49 -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 -708
  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.d.ts +46 -0
  47. package/dist/services/in-app-messaging.js +88 -0
  48. package/dist/services/messaging.svelte.d.ts +75 -0
  49. package/dist/services/messaging.svelte.js +190 -0
  50. package/dist/services/mutations.d.ts +59 -282
  51. package/dist/services/mutations.js +202 -951
  52. package/dist/services/performance.d.ts +60 -0
  53. package/dist/services/performance.js +118 -0
  54. package/dist/services/presence.svelte.d.ts +21 -89
  55. package/dist/services/presence.svelte.js +232 -469
  56. package/dist/services/realtime.svelte.d.ts +54 -125
  57. package/dist/services/realtime.svelte.js +111 -175
  58. package/dist/services/remote-config.svelte.d.ts +73 -0
  59. package/dist/services/remote-config.svelte.js +204 -0
  60. package/dist/services/storage.svelte.d.ts +81 -208
  61. package/dist/services/storage.svelte.js +190 -305
  62. package/dist/services/user.svelte.d.ts +23 -244
  63. package/dist/services/user.svelte.js +129 -439
  64. package/dist/types/analytics.d.ts +2 -36
  65. package/dist/types/analytics.js +0 -5
  66. package/dist/types/auth.d.ts +15 -85
  67. package/dist/types/auth.js +0 -17
  68. package/dist/types/collection.d.ts +31 -225
  69. package/dist/types/collection.js +5 -51
  70. package/dist/types/document.d.ts +11 -236
  71. package/dist/types/document.js +2 -47
  72. package/dist/types/firebase.d.ts +10 -13
  73. package/dist/types/firebase.js +3 -9
  74. package/dist/types/index.d.ts +5 -5
  75. package/dist/types/index.js +5 -4
  76. package/dist/types/mutations.d.ts +11 -225
  77. package/dist/types/mutations.js +6 -51
  78. package/dist/types/presence.d.ts +5 -158
  79. package/dist/types/presence.js +0 -20
  80. package/dist/utils/errors.d.ts +10 -14
  81. package/dist/utils/errors.js +11 -16
  82. package/dist/utils/firestore.d.ts +3 -4
  83. package/dist/utils/firestore.js +7 -10
  84. package/dist/utils/index.d.ts +4 -4
  85. package/dist/utils/index.js +4 -8
  86. package/dist/utils/providers.d.ts +4 -13
  87. package/dist/utils/providers.js +14 -13
  88. package/dist/utils/user.d.ts +1 -3
  89. package/dist/utils/user.js +1 -3
  90. package/package.json +41 -55
  91. package/dist/components/docs/doc-content.svelte +0 -19
  92. package/dist/components/docs/doc-content.svelte.d.ts +0 -6
  93. package/dist/components/docs/doc-header.svelte +0 -24
  94. package/dist/components/docs/doc-header.svelte.d.ts +0 -13
  95. package/dist/components/docs/doc-renderer.svelte +0 -27
  96. package/dist/components/docs/doc-renderer.svelte.d.ts +0 -8
  97. package/dist/components/docs/mobile-table-of-contents.svelte +0 -42
  98. package/dist/components/docs/mobile-table-of-contents.svelte.d.ts +0 -3
  99. package/dist/components/docs/table-of-contents.svelte +0 -33
  100. package/dist/components/docs/table-of-contents.svelte.d.ts +0 -4
  101. package/dist/components/docs/toc.svelte.d.ts +0 -16
  102. package/dist/components/docs/toc.svelte.js +0 -59
  103. package/dist/components/firekit/Collection.svelte +0 -122
  104. package/dist/components/firekit/Collection.svelte.d.ts +0 -27
  105. package/dist/components/firekit/Doc.svelte +0 -140
  106. package/dist/components/firekit/Doc.svelte.d.ts +0 -28
  107. package/dist/components/firekit/Node.svelte +0 -97
  108. package/dist/components/firekit/Node.svelte.d.ts +0 -23
  109. package/dist/components/firekit/auth-guard.svelte +0 -120
  110. package/dist/components/firekit/auth-guard.svelte.d.ts +0 -26
  111. package/dist/components/firekit/custom-guard.svelte +0 -163
  112. package/dist/components/firekit/custom-guard.svelte.d.ts +0 -31
  113. package/dist/components/firekit/download-url.svelte +0 -92
  114. package/dist/components/firekit/download-url.svelte.d.ts +0 -19
  115. package/dist/components/firekit/firebase-app.svelte +0 -33
  116. package/dist/components/firekit/firebase-app.svelte.d.ts +0 -7
  117. package/dist/components/firekit/node-list.svelte +0 -102
  118. package/dist/components/firekit/node-list.svelte.d.ts +0 -27
  119. package/dist/components/firekit/signed-in.svelte +0 -42
  120. package/dist/components/firekit/signed-out.svelte +0 -42
  121. package/dist/components/firekit/storage-list.svelte +0 -97
  122. package/dist/components/firekit/storage-list.svelte.d.ts +0 -26
  123. package/dist/components/firekit/upload-task.svelte +0 -108
  124. package/dist/components/firekit/upload-task.svelte.d.ts +0 -24
  125. package/dist/components/nav/app-sidebar.svelte +0 -175
  126. package/dist/components/nav/app-sidebar.svelte.d.ts +0 -9
  127. package/dist/components/nav/auto-breadcrumb.svelte +0 -41
  128. package/dist/components/nav/auto-breadcrumb.svelte.d.ts +0 -3
  129. package/dist/components/nav/dark-mode-toggle.svelte +0 -17
  130. package/dist/components/nav/dark-mode-toggle.svelte.d.ts +0 -18
  131. package/dist/components/nav/nav-components.svelte +0 -24
  132. package/dist/components/nav/nav-components.svelte.d.ts +0 -11
  133. package/dist/components/nav/nav-main.svelte +0 -45
  134. package/dist/components/nav/nav-main.svelte.d.ts +0 -11
  135. package/dist/components/nav/nav-secondary.svelte +0 -32
  136. package/dist/components/nav/nav-secondary.svelte.d.ts +0 -14
  137. package/dist/components/nav/site-header.svelte +0 -32
  138. package/dist/components/nav/site-header.svelte.d.ts +0 -18
  139. package/dist/components/ui/avatar/avatar-fallback.svelte +0 -17
  140. package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +0 -4
  141. package/dist/components/ui/avatar/avatar-image.svelte +0 -17
  142. package/dist/components/ui/avatar/avatar-image.svelte.d.ts +0 -4
  143. package/dist/components/ui/avatar/avatar.svelte +0 -19
  144. package/dist/components/ui/avatar/avatar.svelte.d.ts +0 -4
  145. package/dist/components/ui/avatar/index.d.ts +0 -4
  146. package/dist/components/ui/avatar/index.js +0 -6
  147. package/dist/components/ui/badge/badge.svelte +0 -50
  148. package/dist/components/ui/badge/badge.svelte.d.ts +0 -32
  149. package/dist/components/ui/badge/index.d.ts +0 -2
  150. package/dist/components/ui/badge/index.js +0 -2
  151. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +0 -23
  152. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +0 -5
  153. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +0 -20
  154. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +0 -5
  155. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +0 -31
  156. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +0 -11
  157. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +0 -23
  158. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +0 -5
  159. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +0 -23
  160. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +0 -5
  161. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +0 -27
  162. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +0 -5
  163. package/dist/components/ui/breadcrumb/breadcrumb.svelte +0 -21
  164. package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +0 -5
  165. package/dist/components/ui/breadcrumb/index.d.ts +0 -8
  166. package/dist/components/ui/breadcrumb/index.js +0 -10
  167. package/dist/components/ui/button/button.svelte +0 -80
  168. package/dist/components/ui/button/button.svelte.d.ts +0 -58
  169. package/dist/components/ui/button/index.d.ts +0 -2
  170. package/dist/components/ui/button/index.js +0 -4
  171. package/dist/components/ui/card/card-action.svelte +0 -20
  172. package/dist/components/ui/card/card-action.svelte.d.ts +0 -5
  173. package/dist/components/ui/card/card-content.svelte +0 -15
  174. package/dist/components/ui/card/card-content.svelte.d.ts +0 -5
  175. package/dist/components/ui/card/card-description.svelte +0 -20
  176. package/dist/components/ui/card/card-description.svelte.d.ts +0 -5
  177. package/dist/components/ui/card/card-footer.svelte +0 -20
  178. package/dist/components/ui/card/card-footer.svelte.d.ts +0 -5
  179. package/dist/components/ui/card/card-header.svelte +0 -23
  180. package/dist/components/ui/card/card-header.svelte.d.ts +0 -5
  181. package/dist/components/ui/card/card-title.svelte +0 -20
  182. package/dist/components/ui/card/card-title.svelte.d.ts +0 -5
  183. package/dist/components/ui/card/card.svelte +0 -23
  184. package/dist/components/ui/card/card.svelte.d.ts +0 -5
  185. package/dist/components/ui/card/index.d.ts +0 -8
  186. package/dist/components/ui/card/index.js +0 -10
  187. package/dist/components/ui/chart/chart-container.svelte +0 -80
  188. package/dist/components/ui/chart/chart-container.svelte.d.ts +0 -9
  189. package/dist/components/ui/chart/chart-style.svelte +0 -36
  190. package/dist/components/ui/chart/chart-style.svelte.d.ts +0 -8
  191. package/dist/components/ui/chart/chart-tooltip.svelte +0 -159
  192. package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +0 -27
  193. package/dist/components/ui/chart/chart-utils.d.ts +0 -36
  194. package/dist/components/ui/chart/chart-utils.js +0 -33
  195. package/dist/components/ui/chart/index.d.ts +0 -4
  196. package/dist/components/ui/chart/index.js +0 -4
  197. package/dist/components/ui/checkbox/checkbox.svelte +0 -36
  198. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +0 -4
  199. package/dist/components/ui/checkbox/index.d.ts +0 -2
  200. package/dist/components/ui/checkbox/index.js +0 -4
  201. package/dist/components/ui/data-table/data-table.svelte.d.ts +0 -40
  202. package/dist/components/ui/data-table/data-table.svelte.js +0 -110
  203. package/dist/components/ui/data-table/flex-render.svelte +0 -36
  204. package/dist/components/ui/data-table/flex-render.svelte.d.ts +0 -30
  205. package/dist/components/ui/data-table/index.d.ts +0 -3
  206. package/dist/components/ui/data-table/index.js +0 -3
  207. package/dist/components/ui/data-table/render-helpers.d.ts +0 -90
  208. package/dist/components/ui/data-table/render-helpers.js +0 -99
  209. package/dist/components/ui/dialog/dialog-close.svelte +0 -7
  210. package/dist/components/ui/dialog/dialog-close.svelte.d.ts +0 -4
  211. package/dist/components/ui/dialog/dialog-content.svelte +0 -43
  212. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +0 -11
  213. package/dist/components/ui/dialog/dialog-description.svelte +0 -17
  214. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +0 -4
  215. package/dist/components/ui/dialog/dialog-footer.svelte +0 -20
  216. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +0 -5
  217. package/dist/components/ui/dialog/dialog-header.svelte +0 -20
  218. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +0 -5
  219. package/dist/components/ui/dialog/dialog-overlay.svelte +0 -20
  220. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +0 -4
  221. package/dist/components/ui/dialog/dialog-title.svelte +0 -17
  222. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +0 -4
  223. package/dist/components/ui/dialog/dialog-trigger.svelte +0 -7
  224. package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +0 -4
  225. package/dist/components/ui/dialog/index.d.ts +0 -11
  226. package/dist/components/ui/dialog/index.js +0 -14
  227. package/dist/components/ui/drawer/drawer-close.svelte +0 -7
  228. package/dist/components/ui/drawer/drawer-close.svelte.d.ts +0 -4
  229. package/dist/components/ui/drawer/drawer-content.svelte +0 -37
  230. package/dist/components/ui/drawer/drawer-content.svelte.d.ts +0 -7
  231. package/dist/components/ui/drawer/drawer-description.svelte +0 -17
  232. package/dist/components/ui/drawer/drawer-description.svelte.d.ts +0 -4
  233. package/dist/components/ui/drawer/drawer-footer.svelte +0 -20
  234. package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +0 -5
  235. package/dist/components/ui/drawer/drawer-header.svelte +0 -20
  236. package/dist/components/ui/drawer/drawer-header.svelte.d.ts +0 -5
  237. package/dist/components/ui/drawer/drawer-nested.svelte +0 -12
  238. package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +0 -3
  239. package/dist/components/ui/drawer/drawer-overlay.svelte +0 -20
  240. package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +0 -4
  241. package/dist/components/ui/drawer/drawer-title.svelte +0 -17
  242. package/dist/components/ui/drawer/drawer-title.svelte.d.ts +0 -4
  243. package/dist/components/ui/drawer/drawer-trigger.svelte +0 -7
  244. package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +0 -4
  245. package/dist/components/ui/drawer/drawer.svelte +0 -12
  246. package/dist/components/ui/drawer/drawer.svelte.d.ts +0 -3
  247. package/dist/components/ui/drawer/index.d.ts +0 -13
  248. package/dist/components/ui/drawer/index.js +0 -15
  249. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +0 -41
  250. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +0 -9
  251. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +0 -27
  252. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +0 -7
  253. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +0 -22
  254. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +0 -8
  255. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +0 -7
  256. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +0 -4
  257. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +0 -27
  258. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +0 -8
  259. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +0 -24
  260. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +0 -8
  261. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +0 -16
  262. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +0 -4
  263. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +0 -31
  264. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +0 -4
  265. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +0 -17
  266. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +0 -4
  267. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +0 -20
  268. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +0 -5
  269. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +0 -20
  270. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +0 -4
  271. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +0 -29
  272. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +0 -7
  273. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +0 -7
  274. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +0 -4
  275. package/dist/components/ui/dropdown-menu/index.d.ts +0 -25
  276. package/dist/components/ui/dropdown-menu/index.js +0 -17
  277. package/dist/components/ui/input/index.d.ts +0 -2
  278. package/dist/components/ui/input/index.js +0 -4
  279. package/dist/components/ui/input/input.svelte +0 -51
  280. package/dist/components/ui/input/input.svelte.d.ts +0 -13
  281. package/dist/components/ui/label/index.d.ts +0 -2
  282. package/dist/components/ui/label/index.js +0 -4
  283. package/dist/components/ui/label/label.svelte +0 -20
  284. package/dist/components/ui/label/label.svelte.d.ts +0 -4
  285. package/dist/components/ui/scroll-area/index.d.ts +0 -3
  286. package/dist/components/ui/scroll-area/index.js +0 -5
  287. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +0 -31
  288. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +0 -4
  289. package/dist/components/ui/scroll-area/scroll-area.svelte +0 -40
  290. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +0 -10
  291. package/dist/components/ui/select/index.d.ts +0 -11
  292. package/dist/components/ui/select/index.js +0 -14
  293. package/dist/components/ui/select/select-content.svelte +0 -40
  294. package/dist/components/ui/select/select-content.svelte.d.ts +0 -8
  295. package/dist/components/ui/select/select-group-heading.svelte +0 -21
  296. package/dist/components/ui/select/select-group-heading.svelte.d.ts +0 -10
  297. package/dist/components/ui/select/select-group.svelte +0 -7
  298. package/dist/components/ui/select/select-group.svelte.d.ts +0 -4
  299. package/dist/components/ui/select/select-item.svelte +0 -38
  300. package/dist/components/ui/select/select-item.svelte.d.ts +0 -4
  301. package/dist/components/ui/select/select-label.svelte +0 -20
  302. package/dist/components/ui/select/select-label.svelte.d.ts +0 -6
  303. package/dist/components/ui/select/select-scroll-down-button.svelte +0 -20
  304. package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +0 -4
  305. package/dist/components/ui/select/select-scroll-up-button.svelte +0 -20
  306. package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +0 -4
  307. package/dist/components/ui/select/select-separator.svelte +0 -18
  308. package/dist/components/ui/select/select-separator.svelte.d.ts +0 -4
  309. package/dist/components/ui/select/select-trigger.svelte +0 -29
  310. package/dist/components/ui/select/select-trigger.svelte.d.ts +0 -8
  311. package/dist/components/ui/separator/index.d.ts +0 -2
  312. package/dist/components/ui/separator/index.js +0 -4
  313. package/dist/components/ui/separator/separator.svelte +0 -20
  314. package/dist/components/ui/separator/separator.svelte.d.ts +0 -4
  315. package/dist/components/ui/sheet/index.d.ts +0 -11
  316. package/dist/components/ui/sheet/index.js +0 -14
  317. package/dist/components/ui/sheet/sheet-close.svelte +0 -7
  318. package/dist/components/ui/sheet/sheet-close.svelte.d.ts +0 -4
  319. package/dist/components/ui/sheet/sheet-content.svelte +0 -58
  320. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +0 -35
  321. package/dist/components/ui/sheet/sheet-description.svelte +0 -17
  322. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +0 -4
  323. package/dist/components/ui/sheet/sheet-footer.svelte +0 -20
  324. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +0 -5
  325. package/dist/components/ui/sheet/sheet-header.svelte +0 -20
  326. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +0 -5
  327. package/dist/components/ui/sheet/sheet-overlay.svelte +0 -20
  328. package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +0 -4
  329. package/dist/components/ui/sheet/sheet-title.svelte +0 -17
  330. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +0 -4
  331. package/dist/components/ui/sheet/sheet-trigger.svelte +0 -7
  332. package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +0 -4
  333. package/dist/components/ui/sidebar/constants.d.ts +0 -6
  334. package/dist/components/ui/sidebar/constants.js +0 -6
  335. package/dist/components/ui/sidebar/context.svelte.d.ts +0 -42
  336. package/dist/components/ui/sidebar/context.svelte.js +0 -54
  337. package/dist/components/ui/sidebar/index.d.ts +0 -25
  338. package/dist/components/ui/sidebar/index.js +0 -27
  339. package/dist/components/ui/sidebar/sidebar-content.svelte +0 -24
  340. package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +0 -5
  341. package/dist/components/ui/sidebar/sidebar-footer.svelte +0 -21
  342. package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +0 -5
  343. package/dist/components/ui/sidebar/sidebar-group-action.svelte +0 -36
  344. package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +0 -11
  345. package/dist/components/ui/sidebar/sidebar-group-content.svelte +0 -21
  346. package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +0 -5
  347. package/dist/components/ui/sidebar/sidebar-group-label.svelte +0 -34
  348. package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +0 -11
  349. package/dist/components/ui/sidebar/sidebar-group.svelte +0 -21
  350. package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +0 -5
  351. package/dist/components/ui/sidebar/sidebar-header.svelte +0 -21
  352. package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +0 -5
  353. package/dist/components/ui/sidebar/sidebar-input.svelte +0 -21
  354. package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +0 -11
  355. package/dist/components/ui/sidebar/sidebar-inset.svelte +0 -24
  356. package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +0 -5
  357. package/dist/components/ui/sidebar/sidebar-menu-action.svelte +0 -43
  358. package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +0 -12
  359. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +0 -29
  360. package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +0 -5
  361. package/dist/components/ui/sidebar/sidebar-menu-button.svelte +0 -103
  362. package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +0 -51
  363. package/dist/components/ui/sidebar/sidebar-menu-item.svelte +0 -21
  364. package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +0 -5
  365. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +0 -36
  366. package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +0 -8
  367. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +0 -43
  368. package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +0 -13
  369. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +0 -21
  370. package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +0 -5
  371. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +0 -25
  372. package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +0 -5
  373. package/dist/components/ui/sidebar/sidebar-menu.svelte +0 -21
  374. package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +0 -5
  375. package/dist/components/ui/sidebar/sidebar-provider.svelte +0 -53
  376. package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +0 -9
  377. package/dist/components/ui/sidebar/sidebar-rail.svelte +0 -36
  378. package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +0 -5
  379. package/dist/components/ui/sidebar/sidebar-separator.svelte +0 -19
  380. package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +0 -13
  381. package/dist/components/ui/sidebar/sidebar-trigger.svelte +0 -35
  382. package/dist/components/ui/sidebar/sidebar-trigger.svelte.d.ts +0 -8
  383. package/dist/components/ui/sidebar/sidebar.svelte +0 -104
  384. package/dist/components/ui/sidebar/sidebar.svelte.d.ts +0 -10
  385. package/dist/components/ui/skeleton/index.d.ts +0 -2
  386. package/dist/components/ui/skeleton/index.js +0 -4
  387. package/dist/components/ui/skeleton/skeleton.svelte +0 -17
  388. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +0 -5
  389. package/dist/components/ui/table/index.d.ts +0 -9
  390. package/dist/components/ui/table/index.js +0 -11
  391. package/dist/components/ui/table/table-body.svelte +0 -20
  392. package/dist/components/ui/table/table-body.svelte.d.ts +0 -5
  393. package/dist/components/ui/table/table-caption.svelte +0 -20
  394. package/dist/components/ui/table/table-caption.svelte.d.ts +0 -5
  395. package/dist/components/ui/table/table-cell.svelte +0 -20
  396. package/dist/components/ui/table/table-cell.svelte.d.ts +0 -5
  397. package/dist/components/ui/table/table-footer.svelte +0 -20
  398. package/dist/components/ui/table/table-footer.svelte.d.ts +0 -5
  399. package/dist/components/ui/table/table-head.svelte +0 -23
  400. package/dist/components/ui/table/table-head.svelte.d.ts +0 -5
  401. package/dist/components/ui/table/table-header.svelte +0 -20
  402. package/dist/components/ui/table/table-header.svelte.d.ts +0 -5
  403. package/dist/components/ui/table/table-row.svelte +0 -23
  404. package/dist/components/ui/table/table-row.svelte.d.ts +0 -5
  405. package/dist/components/ui/table/table.svelte +0 -22
  406. package/dist/components/ui/table/table.svelte.d.ts +0 -5
  407. package/dist/components/ui/tabs/index.d.ts +0 -5
  408. package/dist/components/ui/tabs/index.js +0 -7
  409. package/dist/components/ui/tabs/tabs-content.svelte +0 -17
  410. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +0 -4
  411. package/dist/components/ui/tabs/tabs-list.svelte +0 -20
  412. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +0 -4
  413. package/dist/components/ui/tabs/tabs-trigger.svelte +0 -20
  414. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +0 -4
  415. package/dist/components/ui/tabs/tabs.svelte +0 -19
  416. package/dist/components/ui/tabs/tabs.svelte.d.ts +0 -4
  417. package/dist/components/ui/toggle/index.d.ts +0 -3
  418. package/dist/components/ui/toggle/index.js +0 -5
  419. package/dist/components/ui/toggle/toggle.svelte +0 -52
  420. package/dist/components/ui/toggle/toggle.svelte.d.ts +0 -43
  421. package/dist/components/ui/toggle-group/index.d.ts +0 -3
  422. package/dist/components/ui/toggle-group/index.js +0 -5
  423. package/dist/components/ui/toggle-group/toggle-group-item.svelte +0 -34
  424. package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +0 -6
  425. package/dist/components/ui/toggle-group/toggle-group.svelte +0 -47
  426. package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +0 -8
  427. package/dist/components/ui/tooltip/index.d.ts +0 -7
  428. package/dist/components/ui/tooltip/index.js +0 -9
  429. package/dist/components/ui/tooltip/tooltip-content.svelte +0 -47
  430. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +0 -7
  431. package/dist/components/ui/tooltip/tooltip-trigger.svelte +0 -7
  432. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +0 -4
  433. package/dist/hooks/is-mobile.svelte.d.ts +0 -4
  434. package/dist/hooks/is-mobile.svelte.js +0 -7
  435. package/dist/services/index.d.ts +0 -9
  436. package/dist/services/index.js +0 -10
  437. package/dist/types/docs.d.ts +0 -67
  438. package/dist/types/docs.js +0 -1
  439. package/dist/utils.d.ts +0 -15
  440. package/dist/utils.js +0 -44
@@ -0,0 +1,159 @@
1
+ import { initializeAppCheck, getToken, getLimitedUseToken, onTokenChanged, setTokenAutoRefreshEnabled } from 'firebase/app-check';
2
+ import { firebaseService } from '../firebase.js';
3
+ export { ReCaptchaV3Provider, ReCaptchaEnterpriseProvider, CustomProvider } from 'firebase/app-check';
4
+ /**
5
+ * App Check service — secures all Firebase service calls with attestation tokens.
6
+ *
7
+ * **Must be initialized before any other Firebase service makes a network call.**
8
+ * Use the `appCheckOptions` prop on `<FirebaseApp>`, or call `firekitAppCheck.initialize()`
9
+ * manually as early as possible in your app lifecycle.
10
+ *
11
+ * Supports reCAPTCHA Enterprise, reCAPTCHA v3, and custom providers.
12
+ *
13
+ * @example Via FirebaseApp component
14
+ * ```svelte
15
+ * <FirebaseApp
16
+ * {config}
17
+ * appCheckOptions={{ provider: new ReCaptchaEnterpriseProvider('SITE_KEY'), isTokenAutoRefreshEnabled: true }}
18
+ * >
19
+ * ```
20
+ *
21
+ * @example Programmatic initialization
22
+ * ```ts
23
+ * import { firekitAppCheck, ReCaptchaEnterpriseProvider } from 'svelte-firekit';
24
+ * firekitAppCheck.initialize({
25
+ * provider: new ReCaptchaEnterpriseProvider('SITE_KEY'),
26
+ * isTokenAutoRefreshEnabled: true
27
+ * });
28
+ * ```
29
+ *
30
+ * @example Debug mode in development
31
+ * ```ts
32
+ * // Set this BEFORE calling initialize() — Firebase SDK picks it up automatically
33
+ * if (import.meta.env.DEV) {
34
+ * (self as any).FIREBASE_APPCHECK_DEBUG_TOKEN = true;
35
+ * }
36
+ * firekitAppCheck.initialize({ provider: new ReCaptchaEnterpriseProvider('SITE_KEY') });
37
+ * ```
38
+ */
39
+ class FirekitAppCheck {
40
+ static instance;
41
+ appCheck = null;
42
+ unsubscribeToken = null;
43
+ // ── Reactive state ───────────────────────────────────────────────────────────
44
+ _initialized = $state(false);
45
+ _loading = $state(false);
46
+ _error = $state(null);
47
+ _token = $state(null);
48
+ _tokenExpireTime = $state(null);
49
+ // ── Derived ──────────────────────────────────────────────────────────────────
50
+ _isTokenValid = $derived(this._token !== null &&
51
+ this._tokenExpireTime !== null &&
52
+ this._tokenExpireTime > Date.now());
53
+ constructor() { }
54
+ static getInstance() {
55
+ if (!FirekitAppCheck.instance) {
56
+ FirekitAppCheck.instance = new FirekitAppCheck();
57
+ }
58
+ return FirekitAppCheck.instance;
59
+ }
60
+ // ── Public getters ───────────────────────────────────────────────────────────
61
+ /** Whether App Check has been initialized. */
62
+ get initialized() { return this._initialized; }
63
+ /** True while a token request is in flight. */
64
+ get loading() { return this._loading; }
65
+ /** Last error from initialization or token fetch. */
66
+ get error() { return this._error; }
67
+ /** The current App Check token string, or null if not yet acquired. */
68
+ get token() { return this._token; }
69
+ /** Whether the current token is present and has not expired locally. */
70
+ get isTokenValid() { return this._isTokenValid; }
71
+ // ── Initialization ───────────────────────────────────────────────────────────
72
+ /**
73
+ * Initializes App Check. Must be called before any other Firebase network call.
74
+ * Idempotent — subsequent calls are no-ops.
75
+ */
76
+ initialize(options) {
77
+ if (this._initialized || typeof window === 'undefined')
78
+ return;
79
+ try {
80
+ const app = firebaseService.getFirebaseApp();
81
+ if (!app)
82
+ throw new Error('Firebase app not initialized.');
83
+ this.appCheck = initializeAppCheck(app, options);
84
+ // Store the instance on firebaseService for other services to reference
85
+ firebaseService.appCheck = this.appCheck;
86
+ // Subscribe to token changes for reactive updates
87
+ this.unsubscribeToken = onTokenChanged(this.appCheck, (tokenResult) => {
88
+ this._token = tokenResult.token;
89
+ this._error = null;
90
+ }, (err) => {
91
+ this._error = err;
92
+ });
93
+ this._initialized = true;
94
+ this._error = null;
95
+ }
96
+ catch (err) {
97
+ this._error = err instanceof Error ? err : new Error(String(err));
98
+ throw this._error;
99
+ }
100
+ }
101
+ // ── Token methods ────────────────────────────────────────────────────────────
102
+ /**
103
+ * Returns the current App Check token, fetching a fresh one if needed.
104
+ * @param forceRefresh - Force a new token even if the current one is valid.
105
+ */
106
+ async getToken(forceRefresh = false) {
107
+ if (!this.appCheck)
108
+ return null;
109
+ try {
110
+ this._loading = true;
111
+ const result = await getToken(this.appCheck, forceRefresh);
112
+ this._token = result.token;
113
+ this._error = null;
114
+ return result;
115
+ }
116
+ catch (err) {
117
+ this._error = err instanceof Error ? err : new Error(String(err));
118
+ return null;
119
+ }
120
+ finally {
121
+ this._loading = false;
122
+ }
123
+ }
124
+ /**
125
+ * Returns a limited-use token (one-time use, not cached).
126
+ * Use this for sensitive operations like account deletion or payment flows.
127
+ */
128
+ async getLimitedUseToken() {
129
+ if (!this.appCheck)
130
+ return null;
131
+ try {
132
+ this._loading = true;
133
+ const result = await getLimitedUseToken(this.appCheck);
134
+ this._error = null;
135
+ return result;
136
+ }
137
+ catch (err) {
138
+ this._error = err instanceof Error ? err : new Error(String(err));
139
+ return null;
140
+ }
141
+ finally {
142
+ this._loading = false;
143
+ }
144
+ }
145
+ /**
146
+ * Enables or disables automatic background token refresh.
147
+ */
148
+ setAutoRefresh(enabled) {
149
+ if (!this.appCheck)
150
+ return;
151
+ setTokenAutoRefreshEnabled(this.appCheck, enabled);
152
+ }
153
+ // ── Cleanup ──────────────────────────────────────────────────────────────────
154
+ dispose() {
155
+ this.unsubscribeToken?.();
156
+ this.unsubscribeToken = null;
157
+ }
158
+ }
159
+ export const firekitAppCheck = FirekitAppCheck.getInstance();
@@ -1,402 +1,113 @@
1
+ import { type User, type MultiFactorError, type MultiFactorResolver, type MultiFactorInfo } from 'firebase/auth';
2
+ import { type SignInResult, type RegistrationResult, type OAuthSignInResult, type PhoneVerificationResult, type PasswordUpdateResult, type AccountDeletionResult } from '../types/auth.js';
1
3
  /**
2
- * @fileoverview FirekitAuth - Complete Firebase Authentication Service for Svelte
3
- * @module FirekitAuth
4
- * @version 1.0.0
5
- */
6
- import { type User } from 'firebase/auth';
7
- import { type UserProfile, type AuthState, type PasswordUpdateResult, type AccountDeletionResult, type PhoneVerificationResult, type SignInResult, type RegistrationResult, type OAuthSignInResult } from '../types/auth.js';
8
- /**
9
- * Comprehensive Firebase Authentication service for Svelte applications.
10
- * Provides a complete authentication solution with automatic Firestore integration,
11
- * error handling, and support for all major authentication methods.
4
+ * Firebase Authentication service.
5
+ * Handles all auth operations — sign in, register, sign out, profile updates.
6
+ * Reactive state (loading, user, isAuthenticated) lives in `firekitUser`.
12
7
  *
13
- * @class FirekitAuth
14
8
  * @example
15
- * ```typescript
16
9
  * import { firekitAuth } from 'svelte-firekit';
17
- *
18
- * // Sign in with Google
19
10
  * await firekitAuth.signInWithGoogle();
20
- *
21
- * // Register new user
22
- * await firekitAuth.registerWithEmail("user@example.com", "password123", "John Doe");
23
- *
24
- * // Listen to auth state changes
25
- * const unsubscribe = firekitAuth.onAuthStateChanged((user) => {
26
- * console.log('User:', user);
27
- * });
28
- * ```
11
+ * await firekitAuth.registerWithEmail('user@example.com', 'password', 'Jane Doe');
12
+ * await firekitAuth.signOut();
29
13
  */
30
14
  declare class FirekitAuth {
31
15
  private static instance;
32
16
  private auth;
33
17
  private firestore;
34
- private _servicesInitialized;
35
- private authState;
36
- private stateListeners;
37
18
  private recaptchaVerifiers;
38
19
  private constructor();
39
- /**
40
- * Gets singleton instance of FirekitAuth
41
- * @returns {FirekitAuth} The FirekitAuth instance
42
- */
43
20
  static getInstance(): FirekitAuth;
44
- /**
45
- * Initializes Firebase services and auth state listener
46
- * @private
47
- */
48
- private initializeServices;
49
- /**
50
- * Initializes the authentication state listener
51
- * @private
52
- */
53
- private initializeAuthStateListener;
54
- /**
55
- * Notifies all state listeners of auth state changes
56
- * @private
57
- */
58
- private notifyStateListeners;
59
- /**
60
- * Maps Firebase User to UserProfile interface
61
- * @private
62
- */
63
- private mapFirebaseUserToProfile;
64
- /**
65
- * Updates user data in Firestore with comprehensive profile information
66
- * @private
67
- */
68
- private updateUserInFirestore;
69
- /**
70
- * Handles Firebase authentication errors and throws FirekitAuthError
71
- * @private
72
- */
73
- private handleAuthError;
74
- /**
75
- * Gets the current authentication state
76
- * @returns {AuthState} Current authentication state
77
- */
78
- getState(): AuthState;
79
- /**
80
- * Gets the current authenticated user
81
- * @returns {User | null} Current Firebase user or null
82
- */
83
- getCurrentUser(): User | null;
84
- /**
85
- * Gets the current user profile
86
- * @returns {UserProfile | null} Current user profile or null
87
- */
88
- getCurrentUserProfile(): UserProfile | null;
89
- /**
90
- * Waits for auth initialization to complete
91
- * @returns {Promise<UserProfile | null>} Promise that resolves when auth is initialized
92
- */
93
- waitForAuth(): Promise<UserProfile | null>;
94
- /**
95
- * Subscribes to authentication state changes
96
- * @param {Function} callback Callback function to handle state changes
97
- * @returns {Function} Unsubscribe function
98
- */
99
- onAuthStateChanged(callback: (state: AuthState) => void): () => void;
100
- /**
101
- * Signs in user with email and password
102
- * @param {string} email User's email address
103
- * @param {string} password User's password
104
- * @returns {Promise<SignInResult>} Promise resolving to sign-in result
105
- * @throws {FirekitAuthError} If sign-in fails
106
- *
107
- * @example
108
- * ```typescript
109
- * try {
110
- * const result = await firekitAuth.signInWithEmail("user@example.com", "password123");
111
- * console.log("Signed in:", result.user.displayName);
112
- * console.log("Is new user:", result.isNewUser);
113
- * } catch (error) {
114
- * console.error("Sign-in failed:", error.message);
115
- * }
116
- * ```
117
- */
21
+ private bootstrap;
22
+ private getAuth;
23
+ private syncToFirestore;
24
+ private profile;
118
25
  signInWithEmail(email: string, password: string): Promise<SignInResult>;
119
- /**
120
- * Signs in user with Google popup
121
- * @returns {Promise<OAuthSignInResult>} Promise resolving to OAuth sign-in result
122
- * @throws {FirekitAuthError} If sign-in fails
123
- *
124
- * @example
125
- * ```typescript
126
- * try {
127
- * const result = await firekitAuth.signInWithGoogle();
128
- * console.log("Signed in with Google:", result.user.email);
129
- * console.log("Is new user:", result.isNewUser);
130
- * console.log("Access token:", result.accessToken);
131
- * } catch (error) {
132
- * if (error.code === 'auth/popup-closed-by-user') {
133
- * console.log("User cancelled sign-in");
134
- * }
135
- * }
136
- * ```
137
- */
138
26
  signInWithGoogle(): Promise<OAuthSignInResult>;
139
- /**
140
- * Signs in user with Facebook popup
141
- * @returns {Promise<OAuthSignInResult>} Promise resolving to OAuth sign-in result
142
- * @throws {FirekitAuthError} If sign-in fails
143
- */
144
27
  signInWithFacebook(): Promise<OAuthSignInResult>;
145
- /**
146
- * Signs in user with Apple popup
147
- * @returns {Promise<OAuthSignInResult>} Promise resolving to OAuth sign-in result
148
- * @throws {FirekitAuthError} If sign-in fails
149
- */
150
28
  signInWithApple(): Promise<OAuthSignInResult>;
151
- /**
152
- * Signs in user anonymously
153
- * @returns {Promise<SignInResult>} Promise resolving to sign-in result
154
- * @throws {FirekitAuthError} If sign-in fails
155
- *
156
- * @example
157
- * ```typescript
158
- * const result = await firekitAuth.signInAnonymously();
159
- * console.log("Anonymous user:", result.user.uid);
160
- * console.log("Is new user:", result.isNewUser);
161
- * ```
162
- */
29
+ signInWithGithub(): Promise<OAuthSignInResult>;
30
+ signInWithTwitter(): Promise<OAuthSignInResult>;
31
+ signInWithMicrosoft(): Promise<OAuthSignInResult>;
32
+ private signInWithOAuth;
163
33
  signInAnonymously(): Promise<SignInResult>;
164
- /**
165
- * Initiates phone number sign-in process
166
- * @param {string} phoneNumber Phone number in international format
167
- * @param {string} recaptchaContainerId ID of the reCAPTCHA container element
168
- * @returns {Promise<PhoneVerificationResult>} Promise resolving to verification result
169
- * @throws {FirekitAuthError} If verification initiation fails
170
- *
171
- * @example
172
- * ```typescript
173
- * const verification = await firekitAuth.signInWithPhoneNumber("+1234567890", "recaptcha-container");
174
- * const user = await verification.confirm("123456");
175
- * ```
176
- */
177
34
  signInWithPhoneNumber(phoneNumber: string, recaptchaContainerId: string): Promise<PhoneVerificationResult>;
178
- /**
179
- * Registers new user with email and password
180
- * @param {string} email User's email address
181
- * @param {string} password User's password
182
- * @param {string} [displayName] User's display name
183
- * @param {boolean} [sendVerification=true] Whether to send email verification
184
- * @returns {Promise<RegistrationResult>} Promise resolving to registration result
185
- * @throws {FirekitAuthError} If registration fails
186
- *
187
- * @example
188
- * ```typescript
189
- * const result = await firekitAuth.registerWithEmail(
190
- * "user@example.com",
191
- * "password123",
192
- * "John Doe"
193
- * );
194
- * console.log("Registered:", result.user.displayName);
195
- * console.log("Email verification sent:", result.emailVerificationSent);
196
- * ```
197
- */
198
35
  registerWithEmail(email: string, password: string, displayName?: string, sendVerification?: boolean): Promise<RegistrationResult>;
199
- /**
200
- * Sends password reset email
201
- * @param {string} email User's email address
202
- * @returns {Promise<void>} Promise that resolves when email is sent
203
- * @throws {FirekitAuthError} If sending fails
204
- *
205
- * @example
206
- * ```typescript
207
- * await firekitAuth.sendPasswordReset("user@example.com");
208
- * console.log("Password reset email sent");
209
- * ```
210
- */
36
+ signOut(): Promise<void>;
211
37
  sendPasswordReset(email: string): Promise<void>;
212
- /**
213
- * Confirms password reset with code
214
- * @param {string} code Password reset code from email
215
- * @param {string} newPassword New password
216
- * @returns {Promise<void>} Promise that resolves when password is reset
217
- * @throws {FirekitAuthError} If reset fails
218
- */
219
38
  confirmPasswordReset(code: string, newPassword: string): Promise<void>;
220
- /**
221
- * Updates user password with reauthentication
222
- * @param {string} newPassword New password
223
- * @param {string} currentPassword Current password for reauthentication
224
- * @returns {Promise<PasswordUpdateResult>} Promise resolving to update result
225
- *
226
- * @example
227
- * ```typescript
228
- * const result = await firekitAuth.updatePassword("newPassword123", "oldPassword123");
229
- * if (result.success) {
230
- * console.log("Password updated successfully");
231
- * } else {
232
- * console.error("Update failed:", result.message);
233
- * }
234
- * ```
235
- */
236
39
  updatePassword(newPassword: string, currentPassword: string): Promise<PasswordUpdateResult>;
237
- /**
238
- * Updates user profile
239
- * @param {Object} profile Profile update data
240
- * @param {string} [profile.displayName] New display name
241
- * @param {string} [profile.photoURL] New photo URL
242
- * @returns {Promise<void>} Promise that resolves when profile is updated
243
- * @throws {FirekitAuthError} If update fails
244
- *
245
- * @example
246
- * ```typescript
247
- * await firekitAuth.updateUserProfile({
248
- * displayName: "John Smith",
249
- * photoURL: "https://example.com/photo.jpg"
250
- * });
251
- * ```
252
- */
253
40
  updateUserProfile(profile: {
254
41
  displayName?: string;
255
42
  photoURL?: string;
256
43
  }): Promise<void>;
257
- /**
258
- * Updates user email address
259
- * @param {string} newEmail New email address
260
- * @returns {Promise<void>} Promise that resolves when email is updated
261
- * @throws {FirekitAuthError} If update fails
262
- *
263
- * @example
264
- * ```typescript
265
- * await firekitAuth.updateEmail("newemail@example.com");
266
- * ```
267
- */
268
44
  updateEmail(newEmail: string): Promise<void>;
269
- /**
270
- * Sends email verification to current user
271
- * @returns {Promise<void>} Promise that resolves when verification email is sent
272
- * @throws {FirekitAuthError} If sending fails
273
- *
274
- * @example
275
- * ```typescript
276
- * await firekitAuth.sendEmailVerification();
277
- * ```
278
- */
279
45
  sendEmailVerification(): Promise<void>;
280
- /**
281
- * Reloads user to get updated data
282
- * @returns {Promise<void>} Promise that resolves when user is reloaded
283
- * @throws {FirekitAuthError} If reload fails
284
- *
285
- * @example
286
- * ```typescript
287
- * await firekitAuth.reloadUser();
288
- * ```
289
- */
290
46
  reloadUser(): Promise<void>;
291
- /**
292
- * Gets the current user's ID token
293
- * @param {boolean} [forceRefresh=false] Whether to force token refresh
294
- * @returns {Promise<string>} Promise resolving to ID token
295
- * @throws {FirekitAuthError} If getting token fails
296
- *
297
- * @example
298
- * ```typescript
299
- * const token = await firekitAuth.getIdToken();
300
- * ```
301
- */
302
47
  getIdToken(forceRefresh?: boolean): Promise<string>;
303
- /**
304
- * Reauthenticates user with current password
305
- * @private
306
- */
307
- private reauthenticateUser;
308
- /**
309
- * Deletes user account
310
- * @param {string} [currentPassword] Current password for reauthentication
311
- * @returns {Promise<AccountDeletionResult>} Promise resolving to deletion result
312
- *
313
- * @example
314
- * ```typescript
315
- * const result = await firekitAuth.deleteAccount("currentPassword123");
316
- * if (result.success) {
317
- * console.log("Account deleted successfully");
318
- * } else {
319
- * console.error("Deletion failed:", result.message);
320
- * }
321
- * ```
322
- */
323
48
  deleteAccount(currentPassword?: string): Promise<AccountDeletionResult>;
49
+ reauthenticate(currentPassword: string): Promise<void>;
50
+ signInWithCustomToken(token: string): Promise<SignInResult>;
51
+ /** Signs in with a SAML provider (popup). */
52
+ signInWithSAML(providerId: string): Promise<OAuthSignInResult>;
53
+ /** Signs in with a SAML provider (redirect). Pair with `getRedirectResult()` on load. */
54
+ signInWithSAMLRedirect(providerId: string): Promise<void>;
324
55
  /**
325
- * Signs out the current user
326
- * @returns {Promise<void>} Promise that resolves when sign-out completes
327
- * @throws {FirekitAuthError} If sign-out fails
328
- *
329
- * @example
330
- * ```typescript
331
- * await firekitAuth.signOut();
332
- * console.log("User signed out");
333
- * ```
56
+ * Signs in with a generic OIDC/OAuth2 provider (popup).
57
+ * @param providerId Firebase provider ID, e.g. `'oidc.my-provider'`
58
+ * @param scopes Additional OAuth scopes to request.
334
59
  */
335
- signOut(): Promise<void>;
60
+ signInWithOIDC(providerId: string, scopes?: string[]): Promise<OAuthSignInResult>;
61
+ /** Signs in with a generic OIDC/OAuth2 provider (redirect). Pair with `getRedirectResult()` on load. */
62
+ signInWithOIDCRedirect(providerId: string, scopes?: string[]): Promise<void>;
63
+ signInWithGoogleRedirect(): Promise<void>;
64
+ signInWithFacebookRedirect(): Promise<void>;
65
+ signInWithAppleRedirect(): Promise<void>;
66
+ signInWithGithubRedirect(): Promise<void>;
67
+ signInWithTwitterRedirect(): Promise<void>;
68
+ signInWithMicrosoftRedirect(): Promise<void>;
336
69
  /**
337
- * Checks if user is authenticated
338
- * @returns {boolean} True if user is authenticated
70
+ * Completes a redirect sign-in flow.
71
+ * Call this once on app load to pick up the result of a `signInWith*Redirect()` call.
72
+ * Returns null if no redirect sign-in is pending.
339
73
  */
340
- isAuthenticated(): boolean;
74
+ getRedirectResult(): Promise<OAuthSignInResult | null>;
341
75
  /**
342
- * Checks if user is anonymous
343
- * @returns {boolean} True if user is anonymous
76
+ * Starts phone MFA enrollment for the currently signed-in user.
77
+ * Returns a `verificationId` to pass to `completeMFAEnrollment()`.
344
78
  */
345
- isAnonymous(): boolean;
79
+ startPhoneMFAEnrollment(phoneNumber: string, recaptchaContainerId: string): Promise<string>;
346
80
  /**
347
- * Checks if user's email is verified
348
- * @returns {boolean} True if email is verified
81
+ * Completes phone MFA enrollment using the SMS code.
349
82
  */
350
- isEmailVerified(): boolean;
351
- /**
352
- * Gets user's email address
353
- * @returns {string | null} User's email or null
354
- */
355
- getUserEmail(): string | null;
83
+ completeMFAEnrollment(verificationId: string, code: string, displayName?: string): Promise<void>;
84
+ /** Returns all enrolled MFA factors for the currently signed-in user. */
85
+ getMFAEnrolledFactors(): MultiFactorInfo[];
86
+ /** Unenrolls a specific MFA factor by its UID or `MultiFactorInfo` object. */
87
+ unenrollMFA(factorUidOrInfo: string | MultiFactorInfo): Promise<void>;
356
88
  /**
357
- * Gets user's display name
358
- * @returns {string | null} User's display name or null
89
+ * Gets the `MultiFactorResolver` from a sign-in error that requires MFA.
90
+ * Catch this error from any `signIn*` method when MFA is required.
359
91
  */
360
- getUserDisplayName(): string | null;
92
+ getMFAResolver(error: MultiFactorError): MultiFactorResolver;
361
93
  /**
362
- * Gets user's photo URL
363
- * @returns {string | null} User's photo URL or null
364
- */
365
- getUserPhotoURL(): string | null;
366
- /**
367
- * Gets user's unique ID
368
- * @returns {string | null} User's UID or null
94
+ * Sends an SMS code to complete an MFA sign-in challenge.
95
+ * Returns a `verificationId` to pass to `completeMFASignIn()`.
96
+ *
97
+ * @param resolver From `getMFAResolver(error)`.
98
+ * @param factorIndex Index into `resolver.hints` (default 0).
99
+ * @param recaptchaContainerId DOM container ID for reCAPTCHA (required for phone MFA).
369
100
  */
370
- getUserId(): string | null;
101
+ startMFASignIn(resolver: MultiFactorResolver, factorIndex: number | undefined, recaptchaContainerId: string): Promise<string>;
371
102
  /**
372
- * Cleans up resources and listeners
373
- * @returns {Promise<void>} Promise that resolves when cleanup completes
103
+ * Completes MFA sign-in using the SMS code.
374
104
  */
105
+ completeMFASignIn(resolver: MultiFactorResolver, verificationId: string, code: string): Promise<SignInResult>;
106
+ getCurrentUser(): User | null;
107
+ isAuthenticated(): boolean;
108
+ isAnonymous(): boolean;
109
+ isEmailVerified(): boolean;
375
110
  cleanup(): Promise<void>;
376
111
  }
377
- /**
378
- * Pre-initialized singleton instance of FirekitAuth.
379
- * This is the main export that should be used throughout your application.
380
- *
381
- * @example
382
- * ```typescript
383
- * import { firekitAuth } from 'svelte-firekit';
384
- *
385
- * // Sign in with email
386
- * await firekitAuth.signInWithEmail("user@example.com", "password");
387
- *
388
- * // Listen to auth state
389
- * const unsubscribe = firekitAuth.onAuthStateChanged((state) => {
390
- * if (state.user) {
391
- * console.log("User is signed in:", state.user.email);
392
- * } else {
393
- * console.log("User is signed out");
394
- * }
395
- * });
396
- *
397
- * // Clean up listener
398
- * unsubscribe();
399
- * ```
400
- */
401
112
  export declare const firekitAuth: FirekitAuth;
402
113
  export {};