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,476 +1,144 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview FirekitAnalytics - Google Analytics Service for SvelteKit with Firebase Analytics
|
|
3
|
-
* @module FirekitAnalytics
|
|
4
|
-
* @version 1.0.0
|
|
5
|
-
*/
|
|
6
|
-
import { logEvent, setUserId, setUserProperties, setAnalyticsCollectionEnabled } from 'firebase/analytics';
|
|
1
|
+
import { getAnalytics, logEvent, setUserId, setUserProperties, setDefaultEventParameters, setAnalyticsCollectionEnabled, setConsent, isSupported } from 'firebase/analytics';
|
|
7
2
|
import { firebaseService } from '../firebase.js';
|
|
8
|
-
|
|
3
|
+
function getApp() {
|
|
4
|
+
const app = firebaseService.getFirebaseApp();
|
|
5
|
+
if (!app)
|
|
6
|
+
throw new Error('Firebase app is not initialized.');
|
|
7
|
+
return app;
|
|
8
|
+
}
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Firebase Analytics wrapper.
|
|
11
|
+
*
|
|
12
|
+
* Lazily initializes Analytics (checks `isSupported()` first) and
|
|
13
|
+
* provides a clean, typed API for event logging and user properties.
|
|
13
14
|
*
|
|
14
|
-
* @class FirekitAnalytics
|
|
15
15
|
* @example
|
|
16
|
-
* ```
|
|
16
|
+
* ```ts
|
|
17
17
|
* import { firekitAnalytics } from 'svelte-firekit';
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
* firekitAnalytics.
|
|
21
|
-
*
|
|
22
|
-
* // Track a purchase
|
|
23
|
-
* firekitAnalytics.trackPurchase({
|
|
24
|
-
* transaction_id: 'T12345',
|
|
25
|
-
* value: 29.99,
|
|
26
|
-
* currency: 'USD',
|
|
27
|
-
* items: [{ item_id: 'prod_123', item_name: 'Premium Plan' }]
|
|
28
|
-
* });
|
|
19
|
+
* firekitAnalytics.logEvent('purchase', { value: 9.99, currency: 'USD' });
|
|
20
|
+
* firekitAnalytics.setUserId(user.uid);
|
|
29
21
|
* ```
|
|
30
22
|
*/
|
|
31
23
|
class FirekitAnalytics {
|
|
32
24
|
static instance;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
debugMode = false;
|
|
37
|
-
constructor() {
|
|
38
|
-
if (typeof window !== 'undefined') {
|
|
39
|
-
this.initialize();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Gets singleton instance of FirekitAnalytics
|
|
44
|
-
* @returns {FirekitAnalytics} The FirekitAnalytics instance
|
|
45
|
-
*/
|
|
25
|
+
_analytics = null;
|
|
26
|
+
_initPromise = null;
|
|
27
|
+
constructor() { }
|
|
46
28
|
static getInstance() {
|
|
47
29
|
if (!FirekitAnalytics.instance) {
|
|
48
30
|
FirekitAnalytics.instance = new FirekitAnalytics();
|
|
49
31
|
}
|
|
50
32
|
return FirekitAnalytics.instance;
|
|
51
33
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
isAnalyticsAvailable() {
|
|
73
|
-
return this._initialized && this.analytics !== null;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Gets the analytics instance
|
|
77
|
-
* @returns {Analytics | null} Firebase Analytics instance
|
|
78
|
-
*/
|
|
79
|
-
getAnalyticsInstance() {
|
|
80
|
-
return this.analytics;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Checks if analytics is initialized
|
|
84
|
-
* @returns {boolean} True if analytics is initialized
|
|
85
|
-
*/
|
|
86
|
-
isInitialized() {
|
|
87
|
-
return this._initialized;
|
|
88
|
-
}
|
|
89
|
-
// ========================================
|
|
90
|
-
// CORE TRACKING FUNCTIONS
|
|
91
|
-
// ========================================
|
|
92
|
-
/**
|
|
93
|
-
* Logs a custom analytics event
|
|
94
|
-
* @param {string} eventName Name of the event
|
|
95
|
-
* @param {Record<string, any>} parameters Event parameters
|
|
34
|
+
_init() {
|
|
35
|
+
if (this._initPromise)
|
|
36
|
+
return this._initPromise;
|
|
37
|
+
this._initPromise = (async () => {
|
|
38
|
+
if (typeof window === 'undefined')
|
|
39
|
+
return;
|
|
40
|
+
const supported = await isSupported();
|
|
41
|
+
if (!supported)
|
|
42
|
+
return;
|
|
43
|
+
this._analytics = getAnalytics(getApp());
|
|
44
|
+
})();
|
|
45
|
+
return this._initPromise;
|
|
46
|
+
}
|
|
47
|
+
async _get() {
|
|
48
|
+
await this._init();
|
|
49
|
+
return this._analytics;
|
|
50
|
+
}
|
|
51
|
+
// ── Event logging ─────────────────────────────────────────────────────────
|
|
52
|
+
/**
|
|
53
|
+
* Logs a custom or standard analytics event.
|
|
96
54
|
*
|
|
97
55
|
* @example
|
|
98
|
-
* ```
|
|
99
|
-
* firekitAnalytics.
|
|
100
|
-
*
|
|
101
|
-
* page_location: '/home'
|
|
102
|
-
* });
|
|
56
|
+
* ```ts
|
|
57
|
+
* firekitAnalytics.logEvent('sign_up', { method: 'google' });
|
|
58
|
+
* firekitAnalytics.logEvent('page_view', { page_title: 'Home' });
|
|
103
59
|
* ```
|
|
104
60
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
61
|
+
async logEvent(eventName, eventParams) {
|
|
62
|
+
const a = await this._get();
|
|
63
|
+
if (!a)
|
|
108
64
|
return;
|
|
109
|
-
|
|
110
|
-
try {
|
|
111
|
-
const mergedParameters = { ...this.customParameters, ...parameters };
|
|
112
|
-
logEvent(this.analytics, eventName, mergedParameters);
|
|
113
|
-
if (this.debugMode) {
|
|
114
|
-
console.log('Analytics Event:', eventName, mergedParameters);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
console.error('Failed to track event:', eventName, error);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Tracks page view events
|
|
123
|
-
* @param {PageViewEvent} pageView Page view data
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
* ```typescript
|
|
127
|
-
* firekitAnalytics.trackPageView({
|
|
128
|
-
* page_path: '/products',
|
|
129
|
-
* page_title: 'Products Page'
|
|
130
|
-
* });
|
|
131
|
-
* ```
|
|
132
|
-
*/
|
|
133
|
-
trackPageView(pageView) {
|
|
134
|
-
this.trackEvent('page_view', {
|
|
135
|
-
page_path: pageView.page_path,
|
|
136
|
-
page_title: pageView.page_title || document.title,
|
|
137
|
-
page_location: pageView.page_location || window.location.href,
|
|
138
|
-
page_referrer: pageView.page_referrer || document.referrer
|
|
139
|
-
});
|
|
65
|
+
logEvent(a, eventName, eventParams);
|
|
140
66
|
}
|
|
67
|
+
// ── User identity ─────────────────────────────────────────────────────────
|
|
141
68
|
/**
|
|
142
|
-
* Sets user ID
|
|
143
|
-
*
|
|
69
|
+
* Sets the Analytics user ID.
|
|
70
|
+
* Pass `null` to clear the user ID (e.g. on sign-out).
|
|
144
71
|
*/
|
|
145
|
-
setUserId(
|
|
146
|
-
|
|
72
|
+
async setUserId(id) {
|
|
73
|
+
const a = await this._get();
|
|
74
|
+
if (!a)
|
|
147
75
|
return;
|
|
148
|
-
|
|
149
|
-
setUserId(this.analytics, userId);
|
|
150
|
-
}
|
|
151
|
-
catch (error) {
|
|
152
|
-
console.error('Failed to set user ID:', error);
|
|
153
|
-
}
|
|
76
|
+
setUserId(a, id);
|
|
154
77
|
}
|
|
155
78
|
/**
|
|
156
|
-
* Sets user properties
|
|
157
|
-
* @param {Record<string, any>} properties User properties
|
|
79
|
+
* Sets Analytics user properties.
|
|
158
80
|
*
|
|
159
81
|
* @example
|
|
160
|
-
* ```
|
|
161
|
-
* firekitAnalytics.setUserProperties({
|
|
162
|
-
* user_type: 'premium',
|
|
163
|
-
* subscription_plan: 'pro'
|
|
164
|
-
* });
|
|
82
|
+
* ```ts
|
|
83
|
+
* firekitAnalytics.setUserProperties({ plan: 'pro', locale: 'en-US' });
|
|
165
84
|
* ```
|
|
166
85
|
*/
|
|
167
|
-
setUserProperties(properties) {
|
|
168
|
-
|
|
86
|
+
async setUserProperties(properties) {
|
|
87
|
+
const a = await this._get();
|
|
88
|
+
if (!a)
|
|
169
89
|
return;
|
|
170
|
-
|
|
171
|
-
setUserProperties(this.analytics, properties);
|
|
172
|
-
}
|
|
173
|
-
catch (error) {
|
|
174
|
-
console.error('Failed to set user properties:', error);
|
|
175
|
-
}
|
|
90
|
+
setUserProperties(a, properties);
|
|
176
91
|
}
|
|
177
|
-
//
|
|
178
|
-
// E-COMMERCE TRACKING
|
|
179
|
-
// ========================================
|
|
92
|
+
// ── Screen / page tracking ────────────────────────────────────────────────
|
|
180
93
|
/**
|
|
181
|
-
*
|
|
182
|
-
* @param {PurchaseEvent} purchase Purchase data
|
|
94
|
+
* Logs a screen_view event.
|
|
183
95
|
*
|
|
184
96
|
* @example
|
|
185
|
-
* ```
|
|
186
|
-
* firekitAnalytics.
|
|
187
|
-
* transaction_id: 'T12345',
|
|
188
|
-
* value: 29.99,
|
|
189
|
-
* currency: 'USD',
|
|
190
|
-
* items: [{
|
|
191
|
-
* item_id: 'prod_123',
|
|
192
|
-
* item_name: 'Premium Plan',
|
|
193
|
-
* price: 29.99
|
|
194
|
-
* }]
|
|
195
|
-
* });
|
|
97
|
+
* ```ts
|
|
98
|
+
* firekitAnalytics.setCurrentScreen('ProductDetail');
|
|
196
99
|
* ```
|
|
197
100
|
*/
|
|
198
|
-
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
};
|
|
204
|
-
if (purchase.tax !== undefined)
|
|
205
|
-
parameters.tax = purchase.tax;
|
|
206
|
-
if (purchase.shipping !== undefined)
|
|
207
|
-
parameters.shipping = purchase.shipping;
|
|
208
|
-
if (purchase.items)
|
|
209
|
-
parameters.items = purchase.items;
|
|
210
|
-
this.trackEvent('purchase', parameters);
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Tracks add to cart events
|
|
214
|
-
* @param {EcommerceItem} item Item being added to cart
|
|
215
|
-
* @param {number} value Total value of the cart
|
|
216
|
-
* @param {string} currency Currency code
|
|
217
|
-
*
|
|
218
|
-
* @example
|
|
219
|
-
* ```typescript
|
|
220
|
-
* firekitAnalytics.trackAddToCart({
|
|
221
|
-
* item_id: 'prod_123',
|
|
222
|
-
* item_name: 'Premium Plan',
|
|
223
|
-
* price: 29.99
|
|
224
|
-
* }, 29.99, 'USD');
|
|
225
|
-
* ```
|
|
226
|
-
*/
|
|
227
|
-
trackAddToCart(item, value, currency = 'USD') {
|
|
228
|
-
this.trackEvent('add_to_cart', {
|
|
229
|
-
currency,
|
|
230
|
-
value,
|
|
231
|
-
items: [item]
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Tracks remove from cart events
|
|
236
|
-
* @param {EcommerceItem} item Item being removed from cart
|
|
237
|
-
* @param {number} value Total value of the cart
|
|
238
|
-
* @param {string} currency Currency code
|
|
239
|
-
*/
|
|
240
|
-
trackRemoveFromCart(item, value, currency = 'USD') {
|
|
241
|
-
this.trackEvent('remove_from_cart', {
|
|
242
|
-
currency,
|
|
243
|
-
value,
|
|
244
|
-
items: [item]
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Tracks view item events
|
|
249
|
-
* @param {EcommerceItem} item Item being viewed
|
|
250
|
-
*/
|
|
251
|
-
trackViewItem(item) {
|
|
252
|
-
this.trackEvent('view_item', {
|
|
253
|
-
items: [item]
|
|
254
|
-
});
|
|
101
|
+
async setCurrentScreen(screenName) {
|
|
102
|
+
const a = await this._get();
|
|
103
|
+
if (!a)
|
|
104
|
+
return;
|
|
105
|
+
logEvent(a, 'screen_view', { screen_name: screenName });
|
|
255
106
|
}
|
|
107
|
+
// ── Defaults & consent ────────────────────────────────────────────────────
|
|
256
108
|
/**
|
|
257
|
-
*
|
|
258
|
-
* @param {EcommerceItem[]} items Items in cart
|
|
259
|
-
* @param {number} value Total value
|
|
260
|
-
* @param {string} currency Currency code
|
|
109
|
+
* Sets default parameters that will be included with every logged event.
|
|
261
110
|
*/
|
|
262
|
-
|
|
263
|
-
this.
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
items
|
|
267
|
-
});
|
|
111
|
+
async setDefaultEventParameters(params) {
|
|
112
|
+
await this._get();
|
|
113
|
+
if (params)
|
|
114
|
+
setDefaultEventParameters(params);
|
|
268
115
|
}
|
|
269
|
-
// ========================================
|
|
270
|
-
// ENGAGEMENT TRACKING
|
|
271
|
-
// ========================================
|
|
272
116
|
/**
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
* @example
|
|
277
|
-
* ```typescript
|
|
278
|
-
* firekitAnalytics.trackFormSubmission({
|
|
279
|
-
* form_name: 'contact_form',
|
|
280
|
-
* success: true
|
|
281
|
-
* });
|
|
282
|
-
* ```
|
|
117
|
+
* Enables or disables Analytics data collection.
|
|
118
|
+
* Useful for respecting user consent.
|
|
283
119
|
*/
|
|
284
|
-
|
|
285
|
-
const
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
parameters.form_id = formSubmission.form_id;
|
|
290
|
-
if (formSubmission.success !== undefined)
|
|
291
|
-
parameters.success = formSubmission.success;
|
|
292
|
-
if (formSubmission.error_message)
|
|
293
|
-
parameters.error_message = formSubmission.error_message;
|
|
294
|
-
this.trackEvent('form_submit', parameters);
|
|
120
|
+
async setCollectionEnabled(enabled) {
|
|
121
|
+
const a = await this._get();
|
|
122
|
+
if (!a)
|
|
123
|
+
return;
|
|
124
|
+
setAnalyticsCollectionEnabled(a, enabled);
|
|
295
125
|
}
|
|
296
126
|
/**
|
|
297
|
-
*
|
|
298
|
-
* @param {SearchEvent} search Search data
|
|
127
|
+
* Updates consent settings (GDPR, CCPA, etc.).
|
|
299
128
|
*
|
|
300
129
|
* @example
|
|
301
|
-
* ```
|
|
302
|
-
* firekitAnalytics.
|
|
303
|
-
*
|
|
304
|
-
*
|
|
130
|
+
* ```ts
|
|
131
|
+
* firekitAnalytics.setConsent({
|
|
132
|
+
* analytics_storage: 'granted',
|
|
133
|
+
* ad_storage: 'denied'
|
|
305
134
|
* });
|
|
306
135
|
* ```
|
|
307
136
|
*/
|
|
308
|
-
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
};
|
|
312
|
-
if (search.results_count !== undefined)
|
|
313
|
-
parameters.results_count = search.results_count;
|
|
314
|
-
if (search.category)
|
|
315
|
-
parameters.category = search.category;
|
|
316
|
-
this.trackEvent('search', parameters);
|
|
317
|
-
}
|
|
318
|
-
/**
|
|
319
|
-
* Tracks custom conversion events
|
|
320
|
-
* @param {string} conversionName Name of the conversion
|
|
321
|
-
* @param {number} value Conversion value
|
|
322
|
-
* @param {string} currency Currency code
|
|
323
|
-
*/
|
|
324
|
-
trackConversion(conversionName, value, currency = 'USD') {
|
|
325
|
-
const parameters = {};
|
|
326
|
-
if (value !== undefined) {
|
|
327
|
-
parameters.value = value;
|
|
328
|
-
parameters.currency = currency;
|
|
329
|
-
}
|
|
330
|
-
this.trackEvent(conversionName, parameters);
|
|
331
|
-
}
|
|
332
|
-
/**
|
|
333
|
-
* Tracks user engagement events
|
|
334
|
-
* @param {EngagementEvent} engagement Engagement data
|
|
335
|
-
*/
|
|
336
|
-
trackEngagement(engagement) {
|
|
337
|
-
const parameters = {};
|
|
338
|
-
if (engagement.engagement_time_msec)
|
|
339
|
-
parameters.engagement_time_msec = engagement.engagement_time_msec;
|
|
340
|
-
if (engagement.session_id)
|
|
341
|
-
parameters.session_id = engagement.session_id;
|
|
342
|
-
this.trackEvent('user_engagement', parameters);
|
|
343
|
-
}
|
|
344
|
-
// ========================================
|
|
345
|
-
// SVELTEKIT-SPECIFIC FUNCTIONS
|
|
346
|
-
// ========================================
|
|
347
|
-
/**
|
|
348
|
-
* Initializes automatic page tracking for SvelteKit
|
|
349
|
-
* @param {boolean} trackInitialPage Whether to track the initial page load
|
|
350
|
-
*
|
|
351
|
-
* @example
|
|
352
|
-
* ```typescript
|
|
353
|
-
* // In your app.html or layout
|
|
354
|
-
* firekitAnalytics.initPageTracking();
|
|
355
|
-
* ```
|
|
356
|
-
*/
|
|
357
|
-
initPageTracking(trackInitialPage = true) {
|
|
358
|
-
if (typeof window === 'undefined')
|
|
137
|
+
async setConsent(settings) {
|
|
138
|
+
const a = await this._get();
|
|
139
|
+
if (!a)
|
|
359
140
|
return;
|
|
360
|
-
|
|
361
|
-
if (trackInitialPage) {
|
|
362
|
-
this.trackPageView({
|
|
363
|
-
page_path: window.location.pathname,
|
|
364
|
-
page_title: document.title
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
// Listen for SvelteKit navigation events
|
|
368
|
-
window.addEventListener('sveltekit:navigation-end', () => {
|
|
369
|
-
this.trackPageView({
|
|
370
|
-
page_path: window.location.pathname,
|
|
371
|
-
page_title: document.title
|
|
372
|
-
});
|
|
373
|
-
});
|
|
374
|
-
// Fallback for other navigation events
|
|
375
|
-
window.addEventListener('popstate', () => {
|
|
376
|
-
this.trackPageView({
|
|
377
|
-
page_path: window.location.pathname,
|
|
378
|
-
page_title: document.title
|
|
379
|
-
});
|
|
380
|
-
});
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* Tracks route changes manually (useful for custom routing)
|
|
384
|
-
* @param {string} route Route path
|
|
385
|
-
* @param {string} title Page title
|
|
386
|
-
*/
|
|
387
|
-
trackRouteChange(route, title) {
|
|
388
|
-
this.trackPageView({
|
|
389
|
-
page_path: route,
|
|
390
|
-
page_title: title || document.title
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
// ========================================
|
|
394
|
-
// UTILITY FUNCTIONS
|
|
395
|
-
// ========================================
|
|
396
|
-
/**
|
|
397
|
-
* Sets custom parameters that will be included in all subsequent events
|
|
398
|
-
* @param {Record<string, any>} parameters Custom parameters
|
|
399
|
-
*/
|
|
400
|
-
setCustomParameters(parameters) {
|
|
401
|
-
this.customParameters = { ...this.customParameters, ...parameters };
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Clears custom parameters
|
|
405
|
-
*/
|
|
406
|
-
clearCustomParameters() {
|
|
407
|
-
this.customParameters = {};
|
|
408
|
-
}
|
|
409
|
-
/**
|
|
410
|
-
* Tracks multiple events in batch
|
|
411
|
-
* @param {AnalyticsEvent[]} events Array of events to track
|
|
412
|
-
*/
|
|
413
|
-
trackEvents(events) {
|
|
414
|
-
events.forEach((event) => {
|
|
415
|
-
this.trackEvent(event.name, event.parameters);
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
|
-
/**
|
|
419
|
-
* Enables or disables analytics collection
|
|
420
|
-
* @param {boolean} enabled Whether to enable analytics collection
|
|
421
|
-
*/
|
|
422
|
-
setAnalyticsEnabled(enabled) {
|
|
423
|
-
if (!this.isAnalyticsAvailable())
|
|
424
|
-
return;
|
|
425
|
-
try {
|
|
426
|
-
setAnalyticsCollectionEnabled(this.analytics, enabled);
|
|
427
|
-
}
|
|
428
|
-
catch (error) {
|
|
429
|
-
console.error('Failed to set analytics collection enabled:', error);
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
/**
|
|
433
|
-
* Sets debug mode for analytics
|
|
434
|
-
* @param {boolean} enabled Whether to enable debug mode
|
|
435
|
-
*/
|
|
436
|
-
setDebugMode(enabled) {
|
|
437
|
-
this.debugMode = enabled;
|
|
438
|
-
}
|
|
439
|
-
/**
|
|
440
|
-
* Gets current debug mode status
|
|
441
|
-
* @returns {boolean} Current debug mode status
|
|
442
|
-
*/
|
|
443
|
-
getDebugMode() {
|
|
444
|
-
return this.debugMode;
|
|
445
|
-
}
|
|
446
|
-
/**
|
|
447
|
-
* Cleans up analytics resources
|
|
448
|
-
*/
|
|
449
|
-
cleanup() {
|
|
450
|
-
this.customParameters = {};
|
|
451
|
-
this.debugMode = false;
|
|
141
|
+
setConsent(settings);
|
|
452
142
|
}
|
|
453
143
|
}
|
|
454
|
-
/**
|
|
455
|
-
* Pre-initialized singleton instance of FirekitAnalytics.
|
|
456
|
-
* This is the main export that should be used throughout your application.
|
|
457
|
-
*
|
|
458
|
-
* @example
|
|
459
|
-
* ```typescript
|
|
460
|
-
* import { firekitAnalytics } from 'svelte-firekit';
|
|
461
|
-
*
|
|
462
|
-
* // Track a custom event
|
|
463
|
-
* firekitAnalytics.trackEvent('button_click', { button_name: 'signup' });
|
|
464
|
-
*
|
|
465
|
-
* // Initialize page tracking
|
|
466
|
-
* firekitAnalytics.initPageTracking();
|
|
467
|
-
*
|
|
468
|
-
* // Track a purchase
|
|
469
|
-
* firekitAnalytics.trackPurchase({
|
|
470
|
-
* transaction_id: 'T12345',
|
|
471
|
-
* value: 29.99,
|
|
472
|
-
* currency: 'USD'
|
|
473
|
-
* });
|
|
474
|
-
* ```
|
|
475
|
-
*/
|
|
476
144
|
export const firekitAnalytics = FirekitAnalytics.getInstance();
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type AppCheckOptions, type AppCheckTokenResult } from 'firebase/app-check';
|
|
2
|
+
export type { AppCheckOptions, AppCheckTokenResult };
|
|
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
|
+
declare class FirekitAppCheck {
|
|
40
|
+
private static instance;
|
|
41
|
+
private appCheck;
|
|
42
|
+
private unsubscribeToken;
|
|
43
|
+
private _initialized;
|
|
44
|
+
private _loading;
|
|
45
|
+
private _error;
|
|
46
|
+
private _token;
|
|
47
|
+
private _tokenExpireTime;
|
|
48
|
+
private _isTokenValid;
|
|
49
|
+
private constructor();
|
|
50
|
+
static getInstance(): FirekitAppCheck;
|
|
51
|
+
/** Whether App Check has been initialized. */
|
|
52
|
+
get initialized(): boolean;
|
|
53
|
+
/** True while a token request is in flight. */
|
|
54
|
+
get loading(): boolean;
|
|
55
|
+
/** Last error from initialization or token fetch. */
|
|
56
|
+
get error(): Error | null;
|
|
57
|
+
/** The current App Check token string, or null if not yet acquired. */
|
|
58
|
+
get token(): string | null;
|
|
59
|
+
/** Whether the current token is present and has not expired locally. */
|
|
60
|
+
get isTokenValid(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Initializes App Check. Must be called before any other Firebase network call.
|
|
63
|
+
* Idempotent — subsequent calls are no-ops.
|
|
64
|
+
*/
|
|
65
|
+
initialize(options: AppCheckOptions): void;
|
|
66
|
+
/**
|
|
67
|
+
* Returns the current App Check token, fetching a fresh one if needed.
|
|
68
|
+
* @param forceRefresh - Force a new token even if the current one is valid.
|
|
69
|
+
*/
|
|
70
|
+
getToken(forceRefresh?: boolean): Promise<AppCheckTokenResult | null>;
|
|
71
|
+
/**
|
|
72
|
+
* Returns a limited-use token (one-time use, not cached).
|
|
73
|
+
* Use this for sensitive operations like account deletion or payment flows.
|
|
74
|
+
*/
|
|
75
|
+
getLimitedUseToken(): Promise<AppCheckTokenResult | null>;
|
|
76
|
+
/**
|
|
77
|
+
* Enables or disables automatic background token refresh.
|
|
78
|
+
*/
|
|
79
|
+
setAutoRefresh(enabled: boolean): void;
|
|
80
|
+
dispose(): void;
|
|
81
|
+
}
|
|
82
|
+
export declare const firekitAppCheck: FirekitAppCheck;
|