svelte-firekit 0.1.9 → 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.
- package/README.md +550 -354
- package/dist/components/AuthGuard.svelte +64 -0
- package/dist/components/AuthGuard.svelte.d.ts +15 -0
- package/dist/components/Collection.svelte +62 -0
- package/dist/components/Collection.svelte.d.ts +39 -0
- package/dist/components/CustomGuard.svelte +87 -0
- package/dist/components/CustomGuard.svelte.d.ts +13 -0
- package/dist/components/Doc.svelte +56 -0
- package/dist/components/Doc.svelte.d.ts +36 -0
- package/dist/components/DownloadURL.svelte +48 -0
- package/dist/components/DownloadURL.svelte.d.ts +14 -0
- package/dist/components/FirebaseApp.svelte +81 -0
- package/dist/components/FirebaseApp.svelte.d.ts +12 -0
- package/dist/components/Node.svelte +54 -0
- package/dist/components/Node.svelte.d.ts +36 -0
- package/dist/components/SignedIn.svelte +22 -0
- package/dist/components/{firekit/signed-in.svelte.d.ts → SignedIn.svelte.d.ts} +1 -4
- package/dist/components/SignedOut.svelte +32 -0
- package/dist/components/{firekit/signed-out.svelte.d.ts → SignedOut.svelte.d.ts} +3 -5
- package/dist/components/UploadTask.svelte +75 -0
- package/dist/components/UploadTask.svelte.d.ts +33 -0
- package/dist/config.d.ts +29 -6
- package/dist/config.js +37 -74
- package/dist/context.d.ts +46 -0
- package/dist/context.js +56 -0
- package/dist/firebase.d.ts +25 -84
- package/dist/firebase.js +75 -125
- package/dist/index.d.ts +32 -20
- package/dist/index.js +49 -30
- package/dist/services/ai.svelte.d.ts +152 -0
- package/dist/services/ai.svelte.js +302 -0
- package/dist/services/analytics.d.ts +39 -231
- package/dist/services/analytics.js +89 -421
- package/dist/services/app-check.svelte.d.ts +82 -0
- package/dist/services/app-check.svelte.js +159 -0
- package/dist/services/auth.d.ts +63 -352
- package/dist/services/auth.js +353 -718
- package/dist/services/bundles.d.ts +42 -0
- package/dist/services/bundles.js +57 -0
- package/dist/services/callable.d.ts +57 -0
- package/dist/services/callable.js +115 -0
- package/dist/services/collection.svelte.d.ts +154 -221
- package/dist/services/collection.svelte.js +357 -663
- package/dist/services/document.svelte.d.ts +73 -254
- package/dist/services/document.svelte.js +196 -497
- package/dist/services/in-app-messaging.d.ts +46 -0
- package/dist/services/in-app-messaging.js +88 -0
- package/dist/services/messaging.svelte.d.ts +75 -0
- package/dist/services/messaging.svelte.js +190 -0
- package/dist/services/mutations.d.ts +59 -282
- package/dist/services/mutations.js +202 -951
- package/dist/services/performance.d.ts +60 -0
- package/dist/services/performance.js +118 -0
- package/dist/services/presence.svelte.d.ts +21 -89
- package/dist/services/presence.svelte.js +232 -469
- package/dist/services/realtime.svelte.d.ts +54 -125
- package/dist/services/realtime.svelte.js +111 -175
- package/dist/services/remote-config.svelte.d.ts +73 -0
- package/dist/services/remote-config.svelte.js +204 -0
- package/dist/services/storage.svelte.d.ts +81 -208
- package/dist/services/storage.svelte.js +190 -305
- package/dist/services/user.svelte.d.ts +23 -244
- package/dist/services/user.svelte.js +129 -439
- package/dist/types/analytics.d.ts +2 -36
- package/dist/types/analytics.js +0 -5
- package/dist/types/auth.d.ts +15 -85
- package/dist/types/auth.js +0 -17
- package/dist/types/collection.d.ts +31 -225
- package/dist/types/collection.js +5 -51
- package/dist/types/document.d.ts +11 -236
- package/dist/types/document.js +2 -47
- package/dist/types/firebase.d.ts +10 -13
- package/dist/types/firebase.js +3 -9
- package/dist/types/index.d.ts +5 -5
- package/dist/types/index.js +5 -4
- package/dist/types/mutations.d.ts +11 -225
- package/dist/types/mutations.js +6 -51
- package/dist/types/presence.d.ts +5 -158
- package/dist/types/presence.js +0 -20
- package/dist/utils/errors.d.ts +10 -14
- package/dist/utils/errors.js +11 -16
- package/dist/utils/firestore.d.ts +3 -4
- package/dist/utils/firestore.js +7 -10
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.js +4 -8
- package/dist/utils/providers.d.ts +4 -13
- package/dist/utils/providers.js +14 -13
- package/dist/utils/user.d.ts +1 -3
- package/dist/utils/user.js +1 -3
- package/package.json +41 -55
- package/dist/components/docs/doc-content.svelte +0 -19
- package/dist/components/docs/doc-content.svelte.d.ts +0 -6
- package/dist/components/docs/doc-header.svelte +0 -24
- package/dist/components/docs/doc-header.svelte.d.ts +0 -13
- package/dist/components/docs/doc-renderer.svelte +0 -27
- package/dist/components/docs/doc-renderer.svelte.d.ts +0 -8
- package/dist/components/docs/mobile-table-of-contents.svelte +0 -42
- package/dist/components/docs/mobile-table-of-contents.svelte.d.ts +0 -3
- package/dist/components/docs/table-of-contents.svelte +0 -33
- package/dist/components/docs/table-of-contents.svelte.d.ts +0 -4
- package/dist/components/docs/toc.svelte.d.ts +0 -16
- package/dist/components/docs/toc.svelte.js +0 -59
- package/dist/components/firekit/Collection.svelte +0 -122
- package/dist/components/firekit/Collection.svelte.d.ts +0 -27
- package/dist/components/firekit/Doc.svelte +0 -140
- package/dist/components/firekit/Doc.svelte.d.ts +0 -28
- package/dist/components/firekit/Node.svelte +0 -97
- package/dist/components/firekit/Node.svelte.d.ts +0 -23
- package/dist/components/firekit/auth-guard.svelte +0 -120
- package/dist/components/firekit/auth-guard.svelte.d.ts +0 -26
- package/dist/components/firekit/custom-guard.svelte +0 -163
- package/dist/components/firekit/custom-guard.svelte.d.ts +0 -31
- package/dist/components/firekit/download-url.svelte +0 -92
- package/dist/components/firekit/download-url.svelte.d.ts +0 -19
- package/dist/components/firekit/firebase-app.svelte +0 -33
- package/dist/components/firekit/firebase-app.svelte.d.ts +0 -7
- package/dist/components/firekit/node-list.svelte +0 -102
- package/dist/components/firekit/node-list.svelte.d.ts +0 -27
- package/dist/components/firekit/signed-in.svelte +0 -42
- package/dist/components/firekit/signed-out.svelte +0 -42
- package/dist/components/firekit/storage-list.svelte +0 -97
- package/dist/components/firekit/storage-list.svelte.d.ts +0 -26
- package/dist/components/firekit/upload-task.svelte +0 -108
- package/dist/components/firekit/upload-task.svelte.d.ts +0 -24
- package/dist/components/nav/app-sidebar.svelte +0 -175
- package/dist/components/nav/app-sidebar.svelte.d.ts +0 -9
- package/dist/components/nav/auto-breadcrumb.svelte +0 -41
- package/dist/components/nav/auto-breadcrumb.svelte.d.ts +0 -3
- package/dist/components/nav/dark-mode-toggle.svelte +0 -17
- package/dist/components/nav/dark-mode-toggle.svelte.d.ts +0 -18
- package/dist/components/nav/nav-components.svelte +0 -24
- package/dist/components/nav/nav-components.svelte.d.ts +0 -11
- package/dist/components/nav/nav-main.svelte +0 -45
- package/dist/components/nav/nav-main.svelte.d.ts +0 -11
- package/dist/components/nav/nav-secondary.svelte +0 -32
- package/dist/components/nav/nav-secondary.svelte.d.ts +0 -14
- package/dist/components/nav/site-header.svelte +0 -32
- package/dist/components/nav/site-header.svelte.d.ts +0 -18
- package/dist/components/ui/avatar/avatar-fallback.svelte +0 -17
- package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +0 -4
- package/dist/components/ui/avatar/avatar-image.svelte +0 -17
- package/dist/components/ui/avatar/avatar-image.svelte.d.ts +0 -4
- package/dist/components/ui/avatar/avatar.svelte +0 -19
- package/dist/components/ui/avatar/avatar.svelte.d.ts +0 -4
- package/dist/components/ui/avatar/index.d.ts +0 -4
- package/dist/components/ui/avatar/index.js +0 -6
- package/dist/components/ui/badge/badge.svelte +0 -50
- package/dist/components/ui/badge/badge.svelte.d.ts +0 -32
- package/dist/components/ui/badge/index.d.ts +0 -2
- package/dist/components/ui/badge/index.js +0 -2
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +0 -23
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +0 -5
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +0 -20
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +0 -5
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +0 -31
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +0 -11
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +0 -23
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +0 -5
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +0 -23
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +0 -5
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +0 -27
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +0 -5
- package/dist/components/ui/breadcrumb/breadcrumb.svelte +0 -21
- package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +0 -5
- package/dist/components/ui/breadcrumb/index.d.ts +0 -8
- package/dist/components/ui/breadcrumb/index.js +0 -10
- package/dist/components/ui/button/button.svelte +0 -80
- package/dist/components/ui/button/button.svelte.d.ts +0 -58
- package/dist/components/ui/button/index.d.ts +0 -2
- package/dist/components/ui/button/index.js +0 -4
- package/dist/components/ui/card/card-action.svelte +0 -20
- package/dist/components/ui/card/card-action.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-content.svelte +0 -15
- package/dist/components/ui/card/card-content.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-description.svelte +0 -20
- package/dist/components/ui/card/card-description.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-footer.svelte +0 -20
- package/dist/components/ui/card/card-footer.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-header.svelte +0 -23
- package/dist/components/ui/card/card-header.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-title.svelte +0 -20
- package/dist/components/ui/card/card-title.svelte.d.ts +0 -5
- package/dist/components/ui/card/card.svelte +0 -23
- package/dist/components/ui/card/card.svelte.d.ts +0 -5
- package/dist/components/ui/card/index.d.ts +0 -8
- package/dist/components/ui/card/index.js +0 -10
- package/dist/components/ui/chart/chart-container.svelte +0 -80
- package/dist/components/ui/chart/chart-container.svelte.d.ts +0 -9
- package/dist/components/ui/chart/chart-style.svelte +0 -36
- package/dist/components/ui/chart/chart-style.svelte.d.ts +0 -8
- package/dist/components/ui/chart/chart-tooltip.svelte +0 -159
- package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +0 -27
- package/dist/components/ui/chart/chart-utils.d.ts +0 -36
- package/dist/components/ui/chart/chart-utils.js +0 -33
- package/dist/components/ui/chart/index.d.ts +0 -4
- package/dist/components/ui/chart/index.js +0 -4
- package/dist/components/ui/checkbox/checkbox.svelte +0 -36
- package/dist/components/ui/checkbox/checkbox.svelte.d.ts +0 -4
- package/dist/components/ui/checkbox/index.d.ts +0 -2
- package/dist/components/ui/checkbox/index.js +0 -4
- package/dist/components/ui/data-table/data-table.svelte.d.ts +0 -40
- package/dist/components/ui/data-table/data-table.svelte.js +0 -110
- package/dist/components/ui/data-table/flex-render.svelte +0 -36
- package/dist/components/ui/data-table/flex-render.svelte.d.ts +0 -30
- package/dist/components/ui/data-table/index.d.ts +0 -3
- package/dist/components/ui/data-table/index.js +0 -3
- package/dist/components/ui/data-table/render-helpers.d.ts +0 -90
- package/dist/components/ui/data-table/render-helpers.js +0 -99
- package/dist/components/ui/dialog/dialog-close.svelte +0 -7
- package/dist/components/ui/dialog/dialog-close.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog-content.svelte +0 -43
- package/dist/components/ui/dialog/dialog-content.svelte.d.ts +0 -11
- package/dist/components/ui/dialog/dialog-description.svelte +0 -17
- package/dist/components/ui/dialog/dialog-description.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog-footer.svelte +0 -20
- package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +0 -5
- package/dist/components/ui/dialog/dialog-header.svelte +0 -20
- package/dist/components/ui/dialog/dialog-header.svelte.d.ts +0 -5
- package/dist/components/ui/dialog/dialog-overlay.svelte +0 -20
- package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog-title.svelte +0 -17
- package/dist/components/ui/dialog/dialog-title.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog-trigger.svelte +0 -7
- package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/index.d.ts +0 -11
- package/dist/components/ui/dialog/index.js +0 -14
- package/dist/components/ui/drawer/drawer-close.svelte +0 -7
- package/dist/components/ui/drawer/drawer-close.svelte.d.ts +0 -4
- package/dist/components/ui/drawer/drawer-content.svelte +0 -37
- package/dist/components/ui/drawer/drawer-content.svelte.d.ts +0 -7
- package/dist/components/ui/drawer/drawer-description.svelte +0 -17
- package/dist/components/ui/drawer/drawer-description.svelte.d.ts +0 -4
- package/dist/components/ui/drawer/drawer-footer.svelte +0 -20
- package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +0 -5
- package/dist/components/ui/drawer/drawer-header.svelte +0 -20
- package/dist/components/ui/drawer/drawer-header.svelte.d.ts +0 -5
- package/dist/components/ui/drawer/drawer-nested.svelte +0 -12
- package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +0 -3
- package/dist/components/ui/drawer/drawer-overlay.svelte +0 -20
- package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +0 -4
- package/dist/components/ui/drawer/drawer-title.svelte +0 -17
- package/dist/components/ui/drawer/drawer-title.svelte.d.ts +0 -4
- package/dist/components/ui/drawer/drawer-trigger.svelte +0 -7
- package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +0 -4
- package/dist/components/ui/drawer/drawer.svelte +0 -12
- package/dist/components/ui/drawer/drawer.svelte.d.ts +0 -3
- package/dist/components/ui/drawer/index.d.ts +0 -13
- package/dist/components/ui/drawer/index.js +0 -15
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +0 -41
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +0 -9
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +0 -27
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +0 -7
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +0 -22
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +0 -8
- package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +0 -7
- package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +0 -4
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +0 -27
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +0 -8
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +0 -24
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +0 -8
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +0 -16
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +0 -4
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +0 -31
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +0 -4
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +0 -17
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +0 -4
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +0 -20
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +0 -5
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +0 -20
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +0 -4
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +0 -29
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +0 -7
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +0 -7
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +0 -4
- package/dist/components/ui/dropdown-menu/index.d.ts +0 -25
- package/dist/components/ui/dropdown-menu/index.js +0 -17
- package/dist/components/ui/input/index.d.ts +0 -2
- package/dist/components/ui/input/index.js +0 -4
- package/dist/components/ui/input/input.svelte +0 -51
- package/dist/components/ui/input/input.svelte.d.ts +0 -13
- package/dist/components/ui/label/index.d.ts +0 -2
- package/dist/components/ui/label/index.js +0 -4
- package/dist/components/ui/label/label.svelte +0 -20
- package/dist/components/ui/label/label.svelte.d.ts +0 -4
- package/dist/components/ui/scroll-area/index.d.ts +0 -3
- package/dist/components/ui/scroll-area/index.js +0 -5
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +0 -31
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +0 -4
- package/dist/components/ui/scroll-area/scroll-area.svelte +0 -40
- package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +0 -10
- package/dist/components/ui/select/index.d.ts +0 -11
- package/dist/components/ui/select/index.js +0 -14
- package/dist/components/ui/select/select-content.svelte +0 -40
- package/dist/components/ui/select/select-content.svelte.d.ts +0 -8
- package/dist/components/ui/select/select-group-heading.svelte +0 -21
- package/dist/components/ui/select/select-group-heading.svelte.d.ts +0 -10
- package/dist/components/ui/select/select-group.svelte +0 -7
- package/dist/components/ui/select/select-group.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-item.svelte +0 -38
- package/dist/components/ui/select/select-item.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-label.svelte +0 -20
- package/dist/components/ui/select/select-label.svelte.d.ts +0 -6
- package/dist/components/ui/select/select-scroll-down-button.svelte +0 -20
- package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-scroll-up-button.svelte +0 -20
- package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-separator.svelte +0 -18
- package/dist/components/ui/select/select-separator.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-trigger.svelte +0 -29
- package/dist/components/ui/select/select-trigger.svelte.d.ts +0 -8
- package/dist/components/ui/separator/index.d.ts +0 -2
- package/dist/components/ui/separator/index.js +0 -4
- package/dist/components/ui/separator/separator.svelte +0 -20
- package/dist/components/ui/separator/separator.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/index.d.ts +0 -11
- package/dist/components/ui/sheet/index.js +0 -14
- package/dist/components/ui/sheet/sheet-close.svelte +0 -7
- package/dist/components/ui/sheet/sheet-close.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet-content.svelte +0 -58
- package/dist/components/ui/sheet/sheet-content.svelte.d.ts +0 -35
- package/dist/components/ui/sheet/sheet-description.svelte +0 -17
- package/dist/components/ui/sheet/sheet-description.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet-footer.svelte +0 -20
- package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +0 -5
- package/dist/components/ui/sheet/sheet-header.svelte +0 -20
- package/dist/components/ui/sheet/sheet-header.svelte.d.ts +0 -5
- package/dist/components/ui/sheet/sheet-overlay.svelte +0 -20
- package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet-title.svelte +0 -17
- package/dist/components/ui/sheet/sheet-title.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet-trigger.svelte +0 -7
- package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +0 -4
- package/dist/components/ui/sidebar/constants.d.ts +0 -6
- package/dist/components/ui/sidebar/constants.js +0 -6
- package/dist/components/ui/sidebar/context.svelte.d.ts +0 -42
- package/dist/components/ui/sidebar/context.svelte.js +0 -54
- package/dist/components/ui/sidebar/index.d.ts +0 -25
- package/dist/components/ui/sidebar/index.js +0 -27
- package/dist/components/ui/sidebar/sidebar-content.svelte +0 -24
- package/dist/components/ui/sidebar/sidebar-content.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-footer.svelte +0 -21
- package/dist/components/ui/sidebar/sidebar-footer.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-group-action.svelte +0 -36
- package/dist/components/ui/sidebar/sidebar-group-action.svelte.d.ts +0 -11
- package/dist/components/ui/sidebar/sidebar-group-content.svelte +0 -21
- package/dist/components/ui/sidebar/sidebar-group-content.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-group-label.svelte +0 -34
- package/dist/components/ui/sidebar/sidebar-group-label.svelte.d.ts +0 -11
- package/dist/components/ui/sidebar/sidebar-group.svelte +0 -21
- package/dist/components/ui/sidebar/sidebar-group.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-header.svelte +0 -21
- package/dist/components/ui/sidebar/sidebar-header.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-input.svelte +0 -21
- package/dist/components/ui/sidebar/sidebar-input.svelte.d.ts +0 -11
- package/dist/components/ui/sidebar/sidebar-inset.svelte +0 -24
- package/dist/components/ui/sidebar/sidebar-inset.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte +0 -43
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte.d.ts +0 -12
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +0 -29
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte +0 -103
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +0 -51
- package/dist/components/ui/sidebar/sidebar-menu-item.svelte +0 -21
- package/dist/components/ui/sidebar/sidebar-menu-item.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +0 -36
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte.d.ts +0 -8
- package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte +0 -43
- package/dist/components/ui/sidebar/sidebar-menu-sub-button.svelte.d.ts +0 -13
- package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte +0 -21
- package/dist/components/ui/sidebar/sidebar-menu-sub-item.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +0 -25
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-menu.svelte +0 -21
- package/dist/components/ui/sidebar/sidebar-menu.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-provider.svelte +0 -53
- package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +0 -9
- package/dist/components/ui/sidebar/sidebar-rail.svelte +0 -36
- package/dist/components/ui/sidebar/sidebar-rail.svelte.d.ts +0 -5
- package/dist/components/ui/sidebar/sidebar-separator.svelte +0 -19
- package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +0 -13
- package/dist/components/ui/sidebar/sidebar-trigger.svelte +0 -35
- package/dist/components/ui/sidebar/sidebar-trigger.svelte.d.ts +0 -8
- package/dist/components/ui/sidebar/sidebar.svelte +0 -104
- package/dist/components/ui/sidebar/sidebar.svelte.d.ts +0 -10
- package/dist/components/ui/skeleton/index.d.ts +0 -2
- package/dist/components/ui/skeleton/index.js +0 -4
- package/dist/components/ui/skeleton/skeleton.svelte +0 -17
- package/dist/components/ui/skeleton/skeleton.svelte.d.ts +0 -5
- package/dist/components/ui/table/index.d.ts +0 -9
- package/dist/components/ui/table/index.js +0 -11
- package/dist/components/ui/table/table-body.svelte +0 -20
- package/dist/components/ui/table/table-body.svelte.d.ts +0 -5
- package/dist/components/ui/table/table-caption.svelte +0 -20
- package/dist/components/ui/table/table-caption.svelte.d.ts +0 -5
- package/dist/components/ui/table/table-cell.svelte +0 -20
- package/dist/components/ui/table/table-cell.svelte.d.ts +0 -5
- package/dist/components/ui/table/table-footer.svelte +0 -20
- package/dist/components/ui/table/table-footer.svelte.d.ts +0 -5
- package/dist/components/ui/table/table-head.svelte +0 -23
- package/dist/components/ui/table/table-head.svelte.d.ts +0 -5
- package/dist/components/ui/table/table-header.svelte +0 -20
- package/dist/components/ui/table/table-header.svelte.d.ts +0 -5
- package/dist/components/ui/table/table-row.svelte +0 -23
- package/dist/components/ui/table/table-row.svelte.d.ts +0 -5
- package/dist/components/ui/table/table.svelte +0 -22
- package/dist/components/ui/table/table.svelte.d.ts +0 -5
- package/dist/components/ui/tabs/index.d.ts +0 -5
- package/dist/components/ui/tabs/index.js +0 -7
- package/dist/components/ui/tabs/tabs-content.svelte +0 -17
- package/dist/components/ui/tabs/tabs-content.svelte.d.ts +0 -4
- package/dist/components/ui/tabs/tabs-list.svelte +0 -20
- package/dist/components/ui/tabs/tabs-list.svelte.d.ts +0 -4
- package/dist/components/ui/tabs/tabs-trigger.svelte +0 -20
- package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +0 -4
- package/dist/components/ui/tabs/tabs.svelte +0 -19
- package/dist/components/ui/tabs/tabs.svelte.d.ts +0 -4
- package/dist/components/ui/toggle/index.d.ts +0 -3
- package/dist/components/ui/toggle/index.js +0 -5
- package/dist/components/ui/toggle/toggle.svelte +0 -52
- package/dist/components/ui/toggle/toggle.svelte.d.ts +0 -43
- package/dist/components/ui/toggle-group/index.d.ts +0 -3
- package/dist/components/ui/toggle-group/index.js +0 -5
- package/dist/components/ui/toggle-group/toggle-group-item.svelte +0 -34
- package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +0 -6
- package/dist/components/ui/toggle-group/toggle-group.svelte +0 -47
- package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +0 -8
- package/dist/components/ui/tooltip/index.d.ts +0 -7
- package/dist/components/ui/tooltip/index.js +0 -9
- package/dist/components/ui/tooltip/tooltip-content.svelte +0 -47
- package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +0 -7
- package/dist/components/ui/tooltip/tooltip-trigger.svelte +0 -7
- package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +0 -4
- package/dist/hooks/is-mobile.svelte.d.ts +0 -4
- package/dist/hooks/is-mobile.svelte.js +0 -7
- package/dist/services/index.d.ts +0 -9
- package/dist/services/index.js +0 -10
- package/dist/types/docs.d.ts +0 -67
- package/dist/types/docs.js +0 -1
- package/dist/utils.d.ts +0 -15
- package/dist/utils.js +0 -44
|
@@ -1,374 +1,259 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview FirekitStorage - Optimized Firebase Storage management for Svelte applications
|
|
3
|
-
* @module FirekitStorage
|
|
4
|
-
* @version 1.0.0
|
|
5
|
-
*/
|
|
6
|
-
import { ref, getDownloadURL, listAll, uploadBytesResumable } from 'firebase/storage';
|
|
7
|
-
import { browser } from '$app/environment';
|
|
1
|
+
import { ref, getDownloadURL, listAll, uploadBytesResumable, deleteObject, getMetadata, updateMetadata } from 'firebase/storage';
|
|
8
2
|
import { firebaseService } from '../firebase.js';
|
|
3
|
+
function getStorage() {
|
|
4
|
+
const storage = firebaseService.getStorageInstance();
|
|
5
|
+
if (!storage)
|
|
6
|
+
throw new Error('Firebase Storage is not initialized.');
|
|
7
|
+
return storage;
|
|
8
|
+
}
|
|
9
|
+
// ── Download URL ──────────────────────────────────────────────────────────────
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
-
* @class
|
|
11
|
+
* Fetches and exposes a Firebase Storage download URL reactively.
|
|
12
12
|
*
|
|
13
13
|
* @example
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* if
|
|
20
|
-
* console.log('Loading URL...');
|
|
21
|
-
* } else if (imageUrl.url) {
|
|
22
|
-
* console.log('Download URL:', imageUrl.url);
|
|
23
|
-
* }
|
|
14
|
+
* ```svelte
|
|
15
|
+
* <script lang="ts">
|
|
16
|
+
* import { firekitDownloadUrl } from 'svelte-firekit';
|
|
17
|
+
* const img = firekitDownloadUrl('images/avatar.jpg');
|
|
18
|
+
* </script>
|
|
19
|
+
* {#if img.url}<img src={img.url} alt="avatar" />{/if}
|
|
24
20
|
* ```
|
|
25
21
|
*/
|
|
26
|
-
class FirekitDownloadUrl {
|
|
27
|
-
/** Current download URL */
|
|
22
|
+
export class FirekitDownloadUrl {
|
|
28
23
|
_url = $state(null);
|
|
29
|
-
/** Loading state */
|
|
30
24
|
_loading = $state(true);
|
|
31
|
-
/** Error state */
|
|
32
25
|
_error = $state(null);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Creates a download URL fetcher
|
|
37
|
-
* @param {string} path Storage path to file
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```typescript
|
|
41
|
-
* const url = new FirekitDownloadUrl('documents/file.pdf');
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
26
|
+
_storageRef = null;
|
|
27
|
+
_path;
|
|
44
28
|
constructor(path) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
29
|
+
this._path = path;
|
|
30
|
+
this._init();
|
|
48
31
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
async initializeDownload(path) {
|
|
55
|
-
try {
|
|
56
|
-
const storage = firebaseService.getStorageInstance();
|
|
57
|
-
if (!storage) {
|
|
58
|
-
throw new Error('Storage instance not available');
|
|
59
|
-
}
|
|
60
|
-
this.storageRef = ref(storage, path);
|
|
61
|
-
this._url = await getDownloadURL(this.storageRef);
|
|
32
|
+
get url() { return this._url; }
|
|
33
|
+
get loading() { return this._loading; }
|
|
34
|
+
get error() { return this._error; }
|
|
35
|
+
async _init() {
|
|
36
|
+
if (typeof window === 'undefined') {
|
|
62
37
|
this._loading = false;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const storage = getStorage();
|
|
42
|
+
this._storageRef = ref(storage, this._path);
|
|
43
|
+
this._url = await getDownloadURL(this._storageRef);
|
|
44
|
+
this._error = null;
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
this._error = err instanceof Error ? err : new Error(String(err));
|
|
63
48
|
}
|
|
64
|
-
|
|
65
|
-
this._error = error;
|
|
49
|
+
finally {
|
|
66
50
|
this._loading = false;
|
|
67
51
|
}
|
|
68
52
|
}
|
|
69
|
-
/**
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
* Useful when file content has changed
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* ```typescript
|
|
87
|
-
* // Refresh URL after file update
|
|
88
|
-
* await uploadNewVersion();
|
|
89
|
-
* imageUrl.refresh();
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
refresh() {
|
|
93
|
-
if (this.storageRef) {
|
|
94
|
-
this._loading = true;
|
|
95
|
-
this._error = null;
|
|
96
|
-
this.initializeDownload(this.storageRef.fullPath);
|
|
53
|
+
/** Re-fetches the download URL (useful after replacing a file). */
|
|
54
|
+
async refresh() {
|
|
55
|
+
if (!this._storageRef)
|
|
56
|
+
return;
|
|
57
|
+
this._loading = true;
|
|
58
|
+
this._error = null;
|
|
59
|
+
try {
|
|
60
|
+
this._url = await getDownloadURL(this._storageRef);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
this._error = err instanceof Error ? err : new Error(String(err));
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
this._loading = false;
|
|
97
67
|
}
|
|
98
68
|
}
|
|
99
69
|
}
|
|
70
|
+
// ── Storage list ──────────────────────────────────────────────────────────────
|
|
100
71
|
/**
|
|
101
|
-
*
|
|
102
|
-
* @class
|
|
72
|
+
* Lists files and sub-folders at a Storage path reactively.
|
|
103
73
|
*
|
|
104
74
|
* @example
|
|
105
|
-
* ```
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* console.log('Folders:', imagesList.prefixes);
|
|
75
|
+
* ```svelte
|
|
76
|
+
* <script lang="ts">
|
|
77
|
+
* import { firekitStorageList } from 'svelte-firekit';
|
|
78
|
+
* const dir = firekitStorageList('uploads/2024');
|
|
79
|
+
* </script>
|
|
80
|
+
* {#each dir.items as item}<p>{item.name}</p>{/each}
|
|
112
81
|
* ```
|
|
113
82
|
*/
|
|
114
|
-
class FirekitStorageList {
|
|
115
|
-
/** List of files in directory */
|
|
83
|
+
export class FirekitStorageList {
|
|
116
84
|
_items = $state([]);
|
|
117
|
-
/** List of subdirectories */
|
|
118
85
|
_prefixes = $state([]);
|
|
119
|
-
/** Loading state */
|
|
120
86
|
_loading = $state(true);
|
|
121
|
-
/** Error state */
|
|
122
87
|
_error = $state(null);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Creates a storage directory lister
|
|
127
|
-
* @param {string} path Storage directory path
|
|
128
|
-
*
|
|
129
|
-
* @example
|
|
130
|
-
* ```typescript
|
|
131
|
-
* const list = new FirekitStorageList('uploads/2024');
|
|
132
|
-
* ```
|
|
133
|
-
*/
|
|
88
|
+
_storageRef = null;
|
|
89
|
+
_path;
|
|
134
90
|
constructor(path) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
91
|
+
this._path = path;
|
|
92
|
+
this._init();
|
|
138
93
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
94
|
+
get items() { return this._items; }
|
|
95
|
+
get prefixes() { return this._prefixes; }
|
|
96
|
+
get loading() { return this._loading; }
|
|
97
|
+
get error() { return this._error; }
|
|
98
|
+
async _init() {
|
|
99
|
+
if (typeof window === 'undefined') {
|
|
100
|
+
this._loading = false;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
145
103
|
try {
|
|
146
|
-
const storage =
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
this.storageRef = ref(storage, path);
|
|
151
|
-
const result = await listAll(this.storageRef);
|
|
104
|
+
const storage = getStorage();
|
|
105
|
+
this._storageRef = ref(storage, this._path);
|
|
106
|
+
const result = await listAll(this._storageRef);
|
|
152
107
|
this._items = result.items;
|
|
153
108
|
this._prefixes = result.prefixes;
|
|
154
|
-
this.
|
|
109
|
+
this._error = null;
|
|
155
110
|
}
|
|
156
|
-
catch (
|
|
157
|
-
this._error =
|
|
111
|
+
catch (err) {
|
|
112
|
+
this._error = err instanceof Error ? err : new Error(String(err));
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
158
115
|
this._loading = false;
|
|
159
116
|
}
|
|
160
117
|
}
|
|
161
|
-
/**
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Refreshes directory listing
|
|
179
|
-
* Useful when directory contents have changed
|
|
180
|
-
*
|
|
181
|
-
* @example
|
|
182
|
-
* ```typescript
|
|
183
|
-
* // Refresh after upload
|
|
184
|
-
* await uploadFile('images/new.jpg');
|
|
185
|
-
* imagesList.refresh();
|
|
186
|
-
* ```
|
|
187
|
-
*/
|
|
188
|
-
refresh() {
|
|
189
|
-
if (this.storageRef) {
|
|
190
|
-
this._loading = true;
|
|
191
|
-
this._error = null;
|
|
192
|
-
this.initializeList(this.storageRef.fullPath);
|
|
118
|
+
/** Re-lists the directory (useful after uploads/deletes). */
|
|
119
|
+
async refresh() {
|
|
120
|
+
if (!this._storageRef)
|
|
121
|
+
return;
|
|
122
|
+
this._loading = true;
|
|
123
|
+
this._error = null;
|
|
124
|
+
try {
|
|
125
|
+
const result = await listAll(this._storageRef);
|
|
126
|
+
this._items = result.items;
|
|
127
|
+
this._prefixes = result.prefixes;
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
this._error = err instanceof Error ? err : new Error(String(err));
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
this._loading = false;
|
|
193
134
|
}
|
|
194
135
|
}
|
|
195
136
|
}
|
|
196
137
|
/**
|
|
197
|
-
* Manages Firebase Storage upload
|
|
198
|
-
* @class
|
|
138
|
+
* Manages a resumable Firebase Storage upload with reactive progress.
|
|
199
139
|
*
|
|
200
140
|
* @example
|
|
201
|
-
* ```
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
* upload.cancel();
|
|
141
|
+
* ```svelte
|
|
142
|
+
* <script lang="ts">
|
|
143
|
+
* import { firekitUploadTask } from 'svelte-firekit';
|
|
144
|
+
* let file: File;
|
|
145
|
+
* $: task = file ? firekitUploadTask('uploads/' + file.name, file) : null;
|
|
146
|
+
* </script>
|
|
147
|
+
* {#if task}
|
|
148
|
+
* <progress value={task.progress} max={100} />
|
|
149
|
+
* {#if task.downloadURL}<img src={task.downloadURL} />{/if}
|
|
150
|
+
* {/if}
|
|
212
151
|
* ```
|
|
213
152
|
*/
|
|
214
|
-
class FirekitUploadTask {
|
|
215
|
-
/** Upload progress percentage */
|
|
153
|
+
export class FirekitUploadTask {
|
|
216
154
|
_progress = $state(0);
|
|
217
|
-
|
|
155
|
+
_downloadURL = $state(null);
|
|
218
156
|
_error = $state(null);
|
|
219
|
-
|
|
157
|
+
_state = $state('idle');
|
|
158
|
+
_bytesTransferred = $state(0);
|
|
159
|
+
_totalBytes = $state(0);
|
|
220
160
|
_snapshot = $state(null);
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Creates an upload task
|
|
231
|
-
* @param {string} path Storage path for upload
|
|
232
|
-
* @param {File} file File to upload
|
|
233
|
-
*
|
|
234
|
-
* @example
|
|
235
|
-
* ```typescript
|
|
236
|
-
* const task = new FirekitUploadTask('documents/report.pdf', file);
|
|
237
|
-
* ```
|
|
238
|
-
*/
|
|
239
|
-
constructor(path, file) {
|
|
240
|
-
if (browser) {
|
|
241
|
-
this.initializeUpload(path, file);
|
|
242
|
-
}
|
|
161
|
+
completed = $derived(this._state === 'success');
|
|
162
|
+
canceled = $derived(this._state === 'canceled');
|
|
163
|
+
failed = $derived(this._state === 'error');
|
|
164
|
+
active = $derived(this._state === 'running' || this._state === 'paused');
|
|
165
|
+
_task = null;
|
|
166
|
+
_storageRef = null;
|
|
167
|
+
constructor(path, file, metadata) {
|
|
168
|
+
this._init(path, file, metadata);
|
|
243
169
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
170
|
+
get progress() { return this._progress; }
|
|
171
|
+
get downloadURL() { return this._downloadURL; }
|
|
172
|
+
get error() { return this._error; }
|
|
173
|
+
get state() { return this._state; }
|
|
174
|
+
get bytesTransferred() { return this._bytesTransferred; }
|
|
175
|
+
get totalBytes() { return this._totalBytes; }
|
|
176
|
+
get snapshot() { return this._snapshot; }
|
|
177
|
+
_init(path, file, metadata) {
|
|
178
|
+
if (typeof window === 'undefined')
|
|
179
|
+
return;
|
|
251
180
|
try {
|
|
252
|
-
const storage =
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
this.
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
this.
|
|
260
|
-
this._progress =
|
|
261
|
-
|
|
262
|
-
|
|
181
|
+
const storage = getStorage();
|
|
182
|
+
this._storageRef = ref(storage, path);
|
|
183
|
+
this._task = uploadBytesResumable(this._storageRef, file, metadata);
|
|
184
|
+
this._state = 'running';
|
|
185
|
+
this._task.on('state_changed', (snap) => {
|
|
186
|
+
this._snapshot = snap;
|
|
187
|
+
this._bytesTransferred = snap.bytesTransferred;
|
|
188
|
+
this._totalBytes = snap.totalBytes;
|
|
189
|
+
this._progress = snap.totalBytes > 0
|
|
190
|
+
? (snap.bytesTransferred / snap.totalBytes) * 100
|
|
191
|
+
: 0;
|
|
192
|
+
this._state = snap.state;
|
|
193
|
+
}, (err) => {
|
|
194
|
+
this._error = err;
|
|
195
|
+
this._state = 'error';
|
|
263
196
|
}, async () => {
|
|
264
|
-
if (this.
|
|
265
|
-
this._downloadURL = await getDownloadURL(this.
|
|
266
|
-
this._completed = true;
|
|
197
|
+
if (this._storageRef) {
|
|
198
|
+
this._downloadURL = await getDownloadURL(this._storageRef);
|
|
267
199
|
}
|
|
200
|
+
this._state = 'success';
|
|
201
|
+
this._progress = 100;
|
|
268
202
|
});
|
|
269
203
|
}
|
|
270
|
-
catch (
|
|
271
|
-
this._error =
|
|
204
|
+
catch (err) {
|
|
205
|
+
this._error = err instanceof Error ? err : new Error(String(err));
|
|
206
|
+
this._state = 'error';
|
|
272
207
|
}
|
|
273
208
|
}
|
|
274
|
-
/** Pauses upload */
|
|
275
|
-
pause() {
|
|
276
|
-
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
|
|
280
|
-
this.uploadTask?.resume();
|
|
281
|
-
}
|
|
282
|
-
/** Cancels upload */
|
|
283
|
-
cancel() {
|
|
284
|
-
this.uploadTask?.cancel();
|
|
285
|
-
}
|
|
286
|
-
/** Gets upload progress percentage */
|
|
287
|
-
get progress() {
|
|
288
|
-
return this._progress;
|
|
289
|
-
}
|
|
290
|
-
/** Gets error state */
|
|
291
|
-
get error() {
|
|
292
|
-
return this._error;
|
|
293
|
-
}
|
|
294
|
-
/** Gets current upload snapshot */
|
|
295
|
-
get snapshot() {
|
|
296
|
-
return this._snapshot;
|
|
297
|
-
}
|
|
298
|
-
/** Gets download URL */
|
|
299
|
-
get downloadURL() {
|
|
300
|
-
return this._downloadURL;
|
|
301
|
-
}
|
|
302
|
-
/** Gets completion state */
|
|
303
|
-
get completed() {
|
|
304
|
-
return this._completed;
|
|
305
|
-
}
|
|
209
|
+
/** Pauses the upload. */
|
|
210
|
+
pause() { this._task?.pause(); }
|
|
211
|
+
/** Resumes a paused upload. */
|
|
212
|
+
resume() { this._task?.resume(); }
|
|
213
|
+
/** Cancels the upload. */
|
|
214
|
+
cancel() { this._task?.cancel(); }
|
|
306
215
|
}
|
|
307
|
-
//
|
|
308
|
-
// FACTORY FUNCTIONS
|
|
309
|
-
// ========================================
|
|
216
|
+
// ── One-shot helpers ──────────────────────────────────────────────────────────
|
|
310
217
|
/**
|
|
311
|
-
*
|
|
312
|
-
* @param {string} path Storage path to file
|
|
313
|
-
* @returns {FirekitDownloadUrl} Download URL fetcher instance
|
|
314
|
-
*
|
|
315
|
-
* @example
|
|
316
|
-
* ```typescript
|
|
317
|
-
* const imageUrl = firekitDownloadUrl('images/profile.jpg');
|
|
318
|
-
*
|
|
319
|
-
* // Use in template
|
|
320
|
-
* {#if imageUrl.loading}
|
|
321
|
-
* <p>Loading...</p>
|
|
322
|
-
* {:else if imageUrl.url}
|
|
323
|
-
* <img src={imageUrl.url} alt="Profile" />
|
|
324
|
-
* {/if}
|
|
325
|
-
* ```
|
|
218
|
+
* Deletes a file from Firebase Storage.
|
|
326
219
|
*/
|
|
327
|
-
export function
|
|
328
|
-
|
|
220
|
+
export async function deleteFile(path) {
|
|
221
|
+
const storage = getStorage();
|
|
222
|
+
await deleteObject(ref(storage, path));
|
|
329
223
|
}
|
|
330
224
|
/**
|
|
331
|
-
*
|
|
332
|
-
* @param {string} path Storage directory path
|
|
333
|
-
* @returns {FirekitStorageList} Storage list instance
|
|
334
|
-
*
|
|
335
|
-
* @example
|
|
336
|
-
* ```typescript
|
|
337
|
-
* const documents = firekitStorageList('documents');
|
|
338
|
-
*
|
|
339
|
-
* // Use in template
|
|
340
|
-
* {#if documents.loading}
|
|
341
|
-
* <p>Loading...</p>
|
|
342
|
-
* {:else}
|
|
343
|
-
* <ul>
|
|
344
|
-
* {#each documents.items as item}
|
|
345
|
-
* <li>{item.name}</li>
|
|
346
|
-
* {/each}
|
|
347
|
-
* </ul>
|
|
348
|
-
* {/if}
|
|
349
|
-
* ```
|
|
225
|
+
* Fetches metadata for a file in Firebase Storage.
|
|
350
226
|
*/
|
|
351
|
-
export function
|
|
352
|
-
|
|
227
|
+
export async function getFileMetadata(path) {
|
|
228
|
+
const storage = getStorage();
|
|
229
|
+
return getMetadata(ref(storage, path));
|
|
353
230
|
}
|
|
354
231
|
/**
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
* @param {File} file File to upload
|
|
358
|
-
* @returns {FirekitUploadTask} Upload task instance
|
|
232
|
+
* Updates metadata for a file in Firebase Storage.
|
|
233
|
+
* Only fields provided in `metadata` are changed; omitted fields are left as-is.
|
|
359
234
|
*
|
|
360
235
|
* @example
|
|
361
|
-
* ```
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
*
|
|
366
|
-
* <progress value={uploadTask.progress} max="100" />
|
|
367
|
-
* {:else}
|
|
368
|
-
* <img src={uploadTask.downloadURL} alt="Uploaded file" />
|
|
369
|
-
* {/if}
|
|
236
|
+
* ```ts
|
|
237
|
+
* await updateFileMetadata('images/avatar.jpg', {
|
|
238
|
+
* contentType: 'image/webp',
|
|
239
|
+
* customMetadata: { uploadedBy: 'uid123' }
|
|
240
|
+
* });
|
|
370
241
|
* ```
|
|
371
242
|
*/
|
|
372
|
-
export function
|
|
373
|
-
|
|
243
|
+
export async function updateFileMetadata(path, metadata) {
|
|
244
|
+
const storage = getStorage();
|
|
245
|
+
return updateMetadata(ref(storage, path), metadata);
|
|
246
|
+
}
|
|
247
|
+
// ── Factory functions ─────────────────────────────────────────────────────────
|
|
248
|
+
/** Creates a reactive download URL fetcher. */
|
|
249
|
+
export function firekitDownloadUrl(path) {
|
|
250
|
+
return new FirekitDownloadUrl(path);
|
|
251
|
+
}
|
|
252
|
+
/** Creates a reactive Storage directory listing. */
|
|
253
|
+
export function firekitStorageList(path) {
|
|
254
|
+
return new FirekitStorageList(path);
|
|
255
|
+
}
|
|
256
|
+
/** Creates a reactive resumable upload task. */
|
|
257
|
+
export function firekitUploadTask(path, file, metadata) {
|
|
258
|
+
return new FirekitUploadTask(path, file, metadata);
|
|
374
259
|
}
|