@burdenoff/fe-libs 2026.819.5 → 2026.823.2
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 +66 -0
- package/dist/button/Button.d.ts +1 -1
- package/dist/chrome/AppShellLayout.d.ts +14 -0
- package/dist/chrome/AppShellLayout.d.ts.map +1 -1
- package/dist/chrome/AppShellLayout.js +13 -10
- package/dist/chrome/DynamicFooter.d.ts +6 -1
- package/dist/chrome/DynamicFooter.d.ts.map +1 -1
- package/dist/chrome/DynamicFooter.js +21 -20
- package/dist/chrome/Footer.d.ts +6 -0
- package/dist/chrome/Footer.d.ts.map +1 -1
- package/dist/chrome/Footer.js +46 -45
- package/dist/chrome/FooterBar.d.ts +6 -1
- package/dist/chrome/FooterBar.d.ts.map +1 -1
- package/dist/chrome/FooterBar.js +28 -26
- package/dist/chrome/HeaderBar.d.ts.map +1 -1
- package/dist/chrome/HeaderBar.js +3 -0
- package/dist/chrome/MobileTabBar.d.ts +26 -0
- package/dist/chrome/MobileTabBar.d.ts.map +1 -0
- package/dist/chrome/MobileTabBar.js +194 -0
- package/dist/chrome/NativePageTransition.d.ts +10 -0
- package/dist/chrome/NativePageTransition.d.ts.map +1 -0
- package/dist/chrome/NativePageTransition.js +19 -0
- package/dist/chrome/NativeTopBar.d.ts +21 -0
- package/dist/chrome/NativeTopBar.d.ts.map +1 -0
- package/dist/chrome/NativeTopBar.js +72 -0
- package/dist/chrome/NotificationCenter.d.ts.map +1 -1
- package/dist/chrome/NotificationCenter.js +70 -65
- package/dist/chrome/ProductSideNav.d.ts.map +1 -1
- package/dist/chrome/ProductSideNav.js +44 -74
- package/dist/chrome/SwipeNavigation.d.ts +36 -0
- package/dist/chrome/SwipeNavigation.d.ts.map +1 -0
- package/dist/chrome/SwipeNavigation.js +111 -0
- package/dist/chrome/index.d.ts +14 -7
- package/dist/chrome/index.d.ts.map +1 -1
- package/dist/chrome/mobileTabBar/selectTabs.d.ts +45 -0
- package/dist/chrome/mobileTabBar/selectTabs.d.ts.map +1 -0
- package/dist/chrome/mobileTabBar/selectTabs.js +28 -0
- package/dist/chrome/mobileTabBar/useMobileTabBarVisible.d.ts +18 -0
- package/dist/chrome/mobileTabBar/useMobileTabBarVisible.d.ts.map +1 -0
- package/dist/chrome/mobileTabBar/useMobileTabBarVisible.js +16 -0
- package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts +18 -0
- package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts.map +1 -0
- package/dist/chrome/mobileTabBar/useVisibleNavItems.js +41 -0
- package/dist/chrome/nativeTopBarTitle.d.ts +15 -0
- package/dist/chrome/nativeTopBarTitle.d.ts.map +1 -0
- package/dist/chrome/nativeTopBarTitle.js +22 -0
- package/dist/chrome/swipe/swipeMath.d.ts +25 -0
- package/dist/chrome/swipe/swipeMath.d.ts.map +1 -0
- package/dist/chrome/swipe/swipeMath.js +14 -0
- package/dist/chrome/swipe/swipeState.d.ts +10 -0
- package/dist/chrome/swipe/swipeState.d.ts.map +1 -0
- package/dist/chrome/swipe/swipeState.js +11 -0
- package/dist/chrome.js +8 -1
- package/dist/shared/components/DesktopUpdateToast.d.ts +9 -0
- package/dist/shared/components/DesktopUpdateToast.d.ts.map +1 -0
- package/dist/shared/components/DesktopUpdateToast.js +39 -0
- package/dist/shared/components/PWAInstallBanner.js +1 -1
- package/dist/shared/components/SSORedirectGuard.d.ts.map +1 -1
- package/dist/shared/components/SSORedirectGuard.js +41 -45
- package/dist/shared/components/index.d.ts +2 -0
- package/dist/shared/components/index.d.ts.map +1 -1
- package/dist/shared/config/authBridgeUrls.d.ts +10 -0
- package/dist/shared/config/authBridgeUrls.d.ts.map +1 -1
- package/dist/shared/config/authBridgeUrls.js +16 -12
- package/dist/shared/config/gatewayUrls.d.ts.map +1 -1
- package/dist/shared/config/gatewayUrls.js +22 -19
- package/dist/shared/config/index.d.ts +1 -1
- package/dist/shared/config/index.d.ts.map +1 -1
- package/dist/shared/hooks/shell/useNavRegistry.d.ts +7 -0
- package/dist/shared/hooks/shell/useNavRegistry.d.ts.map +1 -1
- package/dist/shared/hooks/usePWA.d.ts.map +1 -1
- package/dist/shared/hooks/usePWA.js +34 -30
- package/dist/shared/native/consumers.d.ts +15 -1
- package/dist/shared/native/consumers.d.ts.map +1 -1
- package/dist/shared/native/consumers.js +26 -7
- package/dist/shared/native/desktop.d.ts +123 -0
- package/dist/shared/native/desktop.d.ts.map +1 -0
- package/dist/shared/native/desktop.js +280 -0
- package/dist/shared/native/entry.d.ts +39 -0
- package/dist/shared/native/entry.d.ts.map +1 -0
- package/dist/shared/native/entry.js +13 -0
- package/dist/shared/native/hooks/index.d.ts +10 -0
- package/dist/shared/native/hooks/index.d.ts.map +1 -1
- package/dist/shared/native/hooks/index.js +6 -0
- package/dist/shared/native/hooks/useActionSheet.d.ts +63 -0
- package/dist/shared/native/hooks/useActionSheet.d.ts.map +1 -0
- package/dist/shared/native/hooks/useActionSheet.js +45 -0
- package/dist/shared/native/hooks/useDesktop.d.ts +15 -0
- package/dist/shared/native/hooks/useDesktop.d.ts.map +1 -0
- package/dist/shared/native/hooks/useDesktop.js +18 -0
- package/dist/shared/native/hooks/useDesktopUpdateState.d.ts +7 -0
- package/dist/shared/native/hooks/useDesktopUpdateState.d.ts.map +1 -0
- package/dist/shared/native/hooks/useDesktopUpdateState.js +20 -0
- package/dist/shared/native/hooks/useDesktopWindowState.d.ts +7 -0
- package/dist/shared/native/hooks/useDesktopWindowState.d.ts.map +1 -0
- package/dist/shared/native/hooks/useDesktopWindowState.js +9 -0
- package/dist/shared/native/hooks/useHaptics.d.ts +1 -0
- package/dist/shared/native/hooks/useHaptics.d.ts.map +1 -1
- package/dist/shared/native/hooks/useHaptics.js +6 -6
- package/dist/shared/native/hooks/useNetworkStatus.d.ts +23 -0
- package/dist/shared/native/hooks/useNetworkStatus.d.ts.map +1 -0
- package/dist/shared/native/hooks/useNetworkStatus.js +29 -0
- package/dist/shared/native/hooks/usePullToRefresh.d.ts +62 -0
- package/dist/shared/native/hooks/usePullToRefresh.d.ts.map +1 -0
- package/dist/shared/native/hooks/usePullToRefresh.js +84 -0
- package/dist/shared/native/index.d.ts +6 -1
- package/dist/shared/native/index.d.ts.map +1 -1
- package/dist/shared/native/platform.d.ts.map +1 -1
- package/dist/shared/native/platform.js +2 -1
- package/dist/shared/native/purchases.d.ts +7 -1
- package/dist/shared/native/purchases.d.ts.map +1 -1
- package/dist/shared/native/purchases.js +3 -3
- package/dist/shared/native/types.d.ts +136 -0
- package/dist/shared/native/types.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.d.ts.map +1 -1
- package/dist/shared/providers/AppShellProvider.js +117 -115
- package/dist/shared/providers/shell/ThemeProvider.d.ts.map +1 -1
- package/dist/shared/providers/shell/ThemeProvider.js +64 -51
- package/dist/shared/providers/shell/authProvider/useSsoDepositBootGuard.d.ts.map +1 -1
- package/dist/shared/providers/shell/authProvider/useSsoDepositBootGuard.js +25 -29
- package/dist/shared/utils/gatewayFetchRewrite.d.ts.map +1 -1
- package/dist/shared/utils/gatewayFetchRewrite.js +87 -84
- package/dist/shared-components.js +2 -1
- package/dist/shared-config.js +10 -10
- package/dist/shared-native.js +21 -13
- package/dist/shared.js +120 -111
- package/dist/shell-native/actionSheet.d.ts +7 -0
- package/dist/shell-native/actionSheet.d.ts.map +1 -0
- package/dist/shell-native/actionSheet.js +26 -0
- package/dist/shell-native/app-lifecycle.d.ts +4 -0
- package/dist/shell-native/app-lifecycle.d.ts.map +1 -0
- package/dist/shell-native/app-lifecycle.js +12 -0
- package/dist/shell-native/auth-navigation.d.ts +4 -0
- package/dist/shell-native/auth-navigation.d.ts.map +1 -0
- package/dist/shell-native/auth-navigation.js +95 -0
- package/dist/shell-native/back-button.d.ts +8 -0
- package/dist/shell-native/back-button.d.ts.map +1 -0
- package/dist/shell-native/back-button.js +49 -0
- package/dist/shell-native/boot.d.ts +10 -0
- package/dist/shell-native/boot.d.ts.map +1 -0
- package/dist/shell-native/boot.js +65 -0
- package/dist/shell-native/bridge.d.ts +7 -0
- package/dist/shell-native/bridge.d.ts.map +1 -0
- package/dist/shell-native/bridge.js +30 -0
- package/dist/shell-native/browser.d.ts +12 -0
- package/dist/shell-native/browser.d.ts.map +1 -0
- package/dist/shell-native/browser.js +45 -0
- package/dist/shell-native/capacitor-config.d.ts +21 -0
- package/dist/shell-native/capacitor-config.d.ts.map +1 -0
- package/dist/shell-native/capacitor-config.js +102 -0
- package/dist/shell-native/clipboard.d.ts +3 -0
- package/dist/shell-native/clipboard.d.ts.map +1 -0
- package/dist/shell-native/clipboard.js +26 -0
- package/dist/shell-native/deep-link.d.ts +19 -0
- package/dist/shell-native/deep-link.d.ts.map +1 -0
- package/dist/shell-native/deep-link.js +53 -0
- package/dist/shell-native/desktop-bridge.d.ts +14 -0
- package/dist/shell-native/desktop-bridge.d.ts.map +1 -0
- package/dist/shell-native/desktop-bridge.js +17 -0
- package/dist/shell-native/device.d.ts +4 -0
- package/dist/shell-native/device.d.ts.map +1 -0
- package/dist/shell-native/device.js +27 -0
- package/dist/shell-native/dialog.d.ts +4 -0
- package/dist/shell-native/dialog.d.ts.map +1 -0
- package/dist/shell-native/dialog.js +13 -0
- package/dist/shell-native/feedback.d.ts +6 -0
- package/dist/shell-native/feedback.d.ts.map +1 -0
- package/dist/shell-native/feedback.js +29 -0
- package/dist/shell-native/index.d.ts +54 -0
- package/dist/shell-native/index.d.ts.map +1 -0
- package/dist/shell-native/keyboard.d.ts +15 -0
- package/dist/shell-native/keyboard.d.ts.map +1 -0
- package/dist/shell-native/keyboard.js +42 -0
- package/dist/shell-native/network.d.ts +9 -0
- package/dist/shell-native/network.d.ts.map +1 -0
- package/dist/shell-native/network.js +40 -0
- package/dist/shell-native/ota.d.ts +3 -0
- package/dist/shell-native/ota.d.ts.map +1 -0
- package/dist/shell-native/ota.js +21 -0
- package/dist/shell-native/platform.d.ts +21 -0
- package/dist/shell-native/platform.d.ts.map +1 -0
- package/dist/shell-native/platform.js +51 -0
- package/dist/shell-native/preview.d.ts +18 -0
- package/dist/shell-native/preview.d.ts.map +1 -0
- package/dist/shell-native/preview.js +124 -0
- package/dist/shell-native/push.d.ts +14 -0
- package/dist/shell-native/push.d.ts.map +1 -0
- package/dist/shell-native/push.js +62 -0
- package/dist/shell-native/pwa.d.ts +14 -0
- package/dist/shell-native/pwa.d.ts.map +1 -0
- package/dist/shell-native/pwa.js +49 -0
- package/dist/shell-native/service-worker.d.ts +5 -0
- package/dist/shell-native/service-worker.d.ts.map +1 -0
- package/dist/shell-native/service-worker.js +144 -0
- package/dist/shell-native/share.d.ts +4 -0
- package/dist/shell-native/share.d.ts.map +1 -0
- package/dist/shell-native/share.js +19 -0
- package/dist/shell-native/splash.d.ts +16 -0
- package/dist/shell-native/splash.d.ts.map +1 -0
- package/dist/shell-native/splash.js +25 -0
- package/dist/shell-native/system-bars.d.ts +24 -0
- package/dist/shell-native/system-bars.d.ts.map +1 -0
- package/dist/shell-native/system-bars.js +49 -0
- package/dist/shell-native/toast.d.ts +4 -0
- package/dist/shell-native/toast.d.ts.map +1 -0
- package/dist/shell-native/toast.js +16 -0
- package/dist/shell-native/types.d.ts +292 -0
- package/dist/shell-native/types.d.ts.map +1 -0
- package/dist/shell-native/web-manifest.d.ts +36 -0
- package/dist/shell-native/web-manifest.d.ts.map +1 -0
- package/dist/shell-native/web-manifest.js +55 -0
- package/dist/shell-native.d.ts +2 -0
- package/dist/shell-native.js +29 -0
- package/dist/ui/action-sheet.d.ts +29 -0
- package/dist/ui/action-sheet.d.ts.map +1 -0
- package/dist/ui/action-sheet.js +53 -0
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/index.d.ts +6 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/native-welcome.d.ts +61 -0
- package/dist/ui/native-welcome.d.ts.map +1 -0
- package/dist/ui/native-welcome.js +152 -0
- package/dist/ui/offline-banner.d.ts +22 -0
- package/dist/ui/offline-banner.d.ts.map +1 -0
- package/dist/ui/offline-banner.js +34 -0
- package/dist/ui/pull-to-refresh.d.ts +29 -0
- package/dist/ui/pull-to-refresh.d.ts.map +1 -0
- package/dist/ui/pull-to-refresh.js +44 -0
- package/dist/ui/pwa-update-toast.d.ts +34 -0
- package/dist/ui/pwa-update-toast.d.ts.map +1 -0
- package/dist/ui/pwa-update-toast.js +43 -0
- package/dist/ui/select.d.ts +38 -0
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +162 -61
- package/dist/ui.js +40 -35
- package/package.json +93 -4
- package/src/shared/styles/app-shell.css +3 -0
- package/src/shared/styles/native.css +577 -0
- package/dist/node_modules/@capacitor/core/dist/index.js +0 -268
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiny shared flag between SwipeNavigation and NativePageTransition: when a
|
|
3
|
+
* swipe gesture just committed a navigation, the page-transition wrapper must
|
|
4
|
+
* skip its enter animation ONCE (the swipe already animated the exit — a
|
|
5
|
+
* second slide would double-animate).
|
|
6
|
+
*/
|
|
7
|
+
export declare function markSwipeCommitted(): void;
|
|
8
|
+
/** Read-and-clear. Returns true at most once per committed swipe. */
|
|
9
|
+
export declare function consumeSwipeCommitted(): boolean;
|
|
10
|
+
//# sourceMappingURL=swipeState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swipeState.d.ts","sourceRoot":"","sources":["../../../src/chrome/swipe/swipeState.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,qEAAqE;AACrE,wBAAgB,qBAAqB,IAAI,OAAO,CAI/C"}
|
package/dist/chrome.js
CHANGED
|
@@ -37,4 +37,11 @@ import { PluginToolbar as W } from "./chrome/PluginToolbar.js";
|
|
|
37
37
|
import { PluginWidgetGrid as G } from "./chrome/PluginWidgetGrid.js";
|
|
38
38
|
import { PluginContextMenuTarget as K } from "./chrome/PluginContextMenuTarget.js";
|
|
39
39
|
import { ThemePreferences as q } from "./chrome/ThemePreferences.js";
|
|
40
|
-
|
|
40
|
+
import { selectMobileTabs as J } from "./chrome/mobileTabBar/selectTabs.js";
|
|
41
|
+
import { useMobileTabBarVisible as Y } from "./chrome/mobileTabBar/useMobileTabBarVisible.js";
|
|
42
|
+
import { MobileTabBar as X } from "./chrome/MobileTabBar.js";
|
|
43
|
+
import { NativeTopBar as Z } from "./chrome/NativeTopBar.js";
|
|
44
|
+
import { SwipeNavigation as Q } from "./chrome/SwipeNavigation.js";
|
|
45
|
+
import { NativePageTransition as $ } from "./chrome/NativePageTransition.js";
|
|
46
|
+
import { findNavTitle as ee, useNativeTopBarTitle as te } from "./chrome/nativeTopBarTitle.js";
|
|
47
|
+
export { k as AccountSwitcher, t as AppShellLayout, A as AutoBreadcrumbs, L as BrandMark, _ as Breadcrumbs, g as CommandPalette, w as ContextSwitcher, o as DEFAULT_FOOTER_COLUMNS, s as DEFAULT_SOCIAL_LINKS, R as DynamicFooter, c as Footer, i as FooterBar, T as GeographySwitcher, h as GlobalSearch, r as HeaderBar, D as LanguagePickerSheet, C as LanguageSwitcher, X as MobileTabBar, l as NAV_MORE_ID_PREFIX, $ as NativePageTransition, Z as NativeTopBar, N as NavCustomizeDialog, v as NavLink, E as NotificationCenter, n as PageHeader, B as PanelContainer, z as PanelTabs, P as PersonaSimulationPill, F as PersonaSurfaceControls, K as PluginContextMenuTarget, a as PluginFooterStrip, H as PluginRoutes, U as PluginSettingsPage, W as PluginToolbar, G as PluginWidgetGrid, O as ProductPickerSheet, I as ProductSideNav, S as ProductSwitcher, x as ProfileSwitcher, e as ShortcutHelpDialog, m as SideNavigation, b as Sidebar, V as StatusBar, Q as SwipeNavigation, y as Tabs, q as ThemePreferences, u as applyNavVisibility, d as applyPermissionFilter, f as applySurfaceVisibility, ee as findNavTitle, p as isItemEffectivelyShown, j as registerBreadcrumbName, J as selectMobileTabs, M as unregisterBreadcrumbName, Y as useMobileTabBarVisible, te as useNativeTopBarTitle };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
export interface DesktopUpdateToastProps {
|
|
3
|
+
/** Toast title. `{version}` is replaced with the downloaded version. */
|
|
4
|
+
readyMessage?: string;
|
|
5
|
+
restartLabel?: string;
|
|
6
|
+
laterLabel?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const DesktopUpdateToast: FC<DesktopUpdateToastProps>;
|
|
9
|
+
//# sourceMappingURL=DesktopUpdateToast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DesktopUpdateToast.d.ts","sourceRoot":"","sources":["../../../src/shared/components/DesktopUpdateToast.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAqB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAMnD,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA2C1D,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { desktopInstallUpdate as e, isDesktop as t } from "../native/desktop.js";
|
|
2
|
+
import { useDesktopUpdateState as n } from "../native/hooks/useDesktopUpdateState.js";
|
|
3
|
+
import "../native/hooks/index.js";
|
|
4
|
+
import { useEffect as r, useRef as i } from "react";
|
|
5
|
+
import { toast as a } from "sonner";
|
|
6
|
+
//#region src/shared/components/DesktopUpdateToast.tsx
|
|
7
|
+
var o = "Update {version} ready", s = "Restart", c = "Later", l = ({ readyMessage: l = o, restartLabel: u = s, laterLabel: d = c }) => {
|
|
8
|
+
let f = n(), p = i(null), m = i(null);
|
|
9
|
+
return r(() => {
|
|
10
|
+
if (!t()) return;
|
|
11
|
+
if (f.status === "error") {
|
|
12
|
+
let e = f.error ?? "unknown error";
|
|
13
|
+
m.current !== e && (m.current = e, console.warn("[desktop-update] auto-update failed:", e));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (f.status !== "downloaded") return;
|
|
17
|
+
let n = f.version ?? "latest";
|
|
18
|
+
p.current !== n && (p.current = n, a(l.replace("{version}", n), {
|
|
19
|
+
duration: Infinity,
|
|
20
|
+
action: {
|
|
21
|
+
label: u,
|
|
22
|
+
onClick: () => {
|
|
23
|
+
e();
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
cancel: {
|
|
27
|
+
label: d,
|
|
28
|
+
onClick: () => void 0
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
}, [
|
|
32
|
+
f,
|
|
33
|
+
l,
|
|
34
|
+
u,
|
|
35
|
+
d
|
|
36
|
+
]), null;
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
export { l as DesktopUpdateToast };
|
|
@@ -79,7 +79,7 @@ function c({ productName: c = "App", brandInitial: l = "B" }) {
|
|
|
79
79
|
/* @__PURE__ */ o("div", {
|
|
80
80
|
className: "flex-shrink-0",
|
|
81
81
|
children: /* @__PURE__ */ o("div", {
|
|
82
|
-
className: "size-10 rounded-lg bg-
|
|
82
|
+
className: "size-10 rounded-lg bg-action-primary-bg text-action-primary-text flex items-center justify-center font-bold",
|
|
83
83
|
children: l
|
|
84
84
|
})
|
|
85
85
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SSORedirectGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/components/SSORedirectGuard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"SSORedirectGuard.d.ts","sourceRoot":"","sources":["../../../src/shared/components/SSORedirectGuard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuDH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AA2CD,wBAAgB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAM1F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBlF;AAsCD,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4CpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CA6BlC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyC9F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA6B1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,4CAEjC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { resolveAuthBridgeConfig as e } from "../config/authBridgeUrls.js";
|
|
2
2
|
import { clearActiveContextStorage as t } from "../providers/shell/ActiveContextStorage.js";
|
|
3
3
|
import { clearShellSsoCookies as n, isLocalDevSsoHost as r, isSharedSsoCookieDomain as i, isTrustedSsoOrigin as a, readShellSsoCookie as o } from "../utils/authCookie.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { isElectron as s, isNative as c } from "../native/platform.js";
|
|
5
|
+
import { BrandedSplash as l } from "../../ui/branded-splash.js";
|
|
6
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
6
7
|
//#region src/shared/components/SSORedirectGuard.tsx
|
|
7
|
-
var
|
|
8
|
+
var d = "bf-sso-relay-attempt", f = 120 * 1e3, p = [
|
|
8
9
|
"sso_failed",
|
|
9
10
|
"sso-failed",
|
|
10
11
|
"sso-attempted"
|
|
11
12
|
];
|
|
12
|
-
function
|
|
13
|
+
function m(e) {
|
|
13
14
|
if (typeof window > "u") return null;
|
|
14
15
|
try {
|
|
15
16
|
let t = `${window.location.pathname}${window.location.search}${window.location.hash}`, n = new URL(e ?? t, window.location.origin);
|
|
@@ -18,102 +19,97 @@ function f(e) {
|
|
|
18
19
|
return null;
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
|
-
function
|
|
22
|
+
function h(e) {
|
|
22
23
|
return e === "/auth" || e.startsWith("/auth/");
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
-
return
|
|
25
|
+
function g(e) {
|
|
26
|
+
return p.some((t) => e.searchParams.has(t));
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
-
if (
|
|
29
|
-
if (
|
|
28
|
+
function _(e) {
|
|
29
|
+
if (g(e)) return n(), !0;
|
|
30
|
+
if (h(e.pathname)) return !0;
|
|
30
31
|
let t = e.searchParams.get("reason");
|
|
31
32
|
return t === "session-expired" || t === "logout";
|
|
32
33
|
}
|
|
33
|
-
function
|
|
34
|
+
function v() {
|
|
34
35
|
try {
|
|
35
|
-
sessionStorage.removeItem(
|
|
36
|
+
sessionStorage.removeItem(d);
|
|
36
37
|
} catch {}
|
|
37
38
|
}
|
|
38
|
-
function
|
|
39
|
+
function y() {
|
|
39
40
|
if (typeof window > "u") return null;
|
|
40
41
|
try {
|
|
41
|
-
let e = sessionStorage.getItem(
|
|
42
|
+
let e = sessionStorage.getItem(d);
|
|
42
43
|
if (!e) return null;
|
|
43
44
|
let t = JSON.parse(e);
|
|
44
|
-
return typeof t.relayOrigin != "string" || typeof t.returnTo != "string" || typeof t.startedAt != "number" || Date.now() - t.startedAt >
|
|
45
|
+
return typeof t.relayOrigin != "string" || typeof t.returnTo != "string" || typeof t.startedAt != "number" || Date.now() - t.startedAt > f ? (v(), null) : {
|
|
45
46
|
relayOrigin: t.relayOrigin,
|
|
46
47
|
returnTo: t.returnTo,
|
|
47
48
|
startedAt: t.startedAt
|
|
48
49
|
};
|
|
49
50
|
} catch {
|
|
50
|
-
return
|
|
51
|
+
return v(), null;
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
function
|
|
54
|
+
function b(e) {
|
|
54
55
|
try {
|
|
55
56
|
return new URL(e).origin;
|
|
56
57
|
} catch {
|
|
57
58
|
return null;
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
|
-
function
|
|
61
|
-
let t =
|
|
62
|
-
return !t ||
|
|
61
|
+
function x(e) {
|
|
62
|
+
let t = m(e);
|
|
63
|
+
return !t || _(t);
|
|
63
64
|
}
|
|
64
|
-
function
|
|
65
|
-
let n =
|
|
65
|
+
function S(e, t) {
|
|
66
|
+
let n = b(e), r = m(t), i = y();
|
|
66
67
|
return !!(n && r && i?.returnTo === r.href);
|
|
67
68
|
}
|
|
68
|
-
function
|
|
69
|
+
function C(e, t) {
|
|
69
70
|
if (typeof window > "u") return;
|
|
70
|
-
let n =
|
|
71
|
+
let n = b(e), r = m(t);
|
|
71
72
|
if (!(!n || !r)) try {
|
|
72
73
|
let e = {
|
|
73
74
|
relayOrigin: n,
|
|
74
75
|
returnTo: r.href,
|
|
75
76
|
startedAt: Date.now()
|
|
76
77
|
};
|
|
77
|
-
sessionStorage.setItem(
|
|
78
|
+
sessionStorage.setItem(d, JSON.stringify(e));
|
|
78
79
|
} catch {}
|
|
79
80
|
}
|
|
80
|
-
function
|
|
81
|
-
|
|
82
|
-
try {
|
|
83
|
-
let e = window.Capacitor;
|
|
84
|
-
if (typeof e?.isNativePlatform == "function" && e.isNativePlatform()) return !0;
|
|
85
|
-
} catch {}
|
|
86
|
-
return !!(typeof navigator < "u" && /Electron/i.test(navigator.userAgent || ""));
|
|
81
|
+
function w() {
|
|
82
|
+
return c() || s();
|
|
87
83
|
}
|
|
88
|
-
function
|
|
89
|
-
if (
|
|
84
|
+
function T(t) {
|
|
85
|
+
if (w()) return null;
|
|
90
86
|
try {
|
|
91
|
-
let n =
|
|
92
|
-
if (!n ||
|
|
87
|
+
let n = m(t);
|
|
88
|
+
if (!n || _(n) || r()) return null;
|
|
93
89
|
let i = window.location.origin, s = o();
|
|
94
90
|
if (s?.origin && a(s.origin)) {
|
|
95
91
|
let e = new URL(s.origin).origin;
|
|
96
|
-
if (e && e !== i && !
|
|
92
|
+
if (e && e !== i && !S(e, n.href)) return C(e, n.href), `${e}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`;
|
|
97
93
|
}
|
|
98
94
|
try {
|
|
99
95
|
let t = e(), r = new URL(t.url).origin;
|
|
100
|
-
if (r && r !== i && !
|
|
96
|
+
if (r && r !== i && !S(r, n.href)) return C(r, n.href), `${r}/auth/sso-relay?returnTo=${encodeURIComponent(n.href)}`;
|
|
101
97
|
} catch {}
|
|
102
98
|
return null;
|
|
103
99
|
} catch {
|
|
104
100
|
return null;
|
|
105
101
|
}
|
|
106
102
|
}
|
|
107
|
-
function
|
|
103
|
+
function E() {
|
|
108
104
|
try {
|
|
109
105
|
if (o()) return !1;
|
|
110
106
|
let e = sessionStorage.getItem("bf-active-profile");
|
|
111
|
-
return !e || !localStorage.getItem(`bf-p-${e}-tokens`) || !i() ? !1 : (
|
|
107
|
+
return !e || !localStorage.getItem(`bf-p-${e}-tokens`) || !i() ? !1 : (O(), !0);
|
|
112
108
|
} catch {
|
|
113
109
|
return !1;
|
|
114
110
|
}
|
|
115
111
|
}
|
|
116
|
-
async function
|
|
112
|
+
async function D(e, t) {
|
|
117
113
|
try {
|
|
118
114
|
let n = await fetch(e, {
|
|
119
115
|
method: "POST",
|
|
@@ -130,7 +126,7 @@ async function T(e, t) {
|
|
|
130
126
|
return !1;
|
|
131
127
|
}
|
|
132
128
|
}
|
|
133
|
-
function
|
|
129
|
+
function O() {
|
|
134
130
|
try {
|
|
135
131
|
let e = localStorage.getItem("bf-profiles");
|
|
136
132
|
if (e) {
|
|
@@ -141,8 +137,8 @@ function E() {
|
|
|
141
137
|
localStorage.removeItem("bf-profiles"), localStorage.removeItem("auth-storage"), sessionStorage.removeItem("bf-active-profile"), t(), n(), window.dispatchEvent(new Event("bf-auth-state-cleared")), window.dispatchEvent(new Event("bf-profile-storage-change"));
|
|
142
138
|
} catch {}
|
|
143
139
|
}
|
|
144
|
-
function
|
|
145
|
-
return /* @__PURE__ */
|
|
140
|
+
function k() {
|
|
141
|
+
return /* @__PURE__ */ u(l, { label: "Signing you in…" });
|
|
146
142
|
}
|
|
147
143
|
//#endregion
|
|
148
|
-
export {
|
|
144
|
+
export { k as SSORedirectSpinner, D as checkRemoteSLO, E as checkSLO, O as clearLocalAuthState, v as clearSSORelayAttempt, T as getSSORedirectUrl, S as hasRecentSSORedirectAttempt, C as markSSORedirectAttempt, x as shouldSkipSSORedirect };
|
|
@@ -33,4 +33,6 @@ export type { UseVoiceInputReturn } from './assistantWidget/useVoiceInput';
|
|
|
33
33
|
export type { AssistantTransport, AssistantSendArgs, AssistantSessionSummary, AssistantWidgetMessage, AssistantWidgetRole, } from './assistantWidget/types';
|
|
34
34
|
export { Markdown } from './Markdown';
|
|
35
35
|
export type { MarkdownProps } from './Markdown';
|
|
36
|
+
export { DesktopUpdateToast } from './DesktopUpdateToast';
|
|
37
|
+
export type { DesktopUpdateToastProps } from './DesktopUpdateToast';
|
|
36
38
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/components/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpF,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACnG,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/components/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpF,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAI/E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjG,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAGlF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGtE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACnG,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -24,4 +24,14 @@ export interface RuntimeAuthBridgeConfig {
|
|
|
24
24
|
* 3. Everything else -> local development bridge (app.local.burdenoff.com)
|
|
25
25
|
*/
|
|
26
26
|
export declare function resolveAuthBridgeConfig(): RuntimeAuthBridgeConfig;
|
|
27
|
+
/**
|
|
28
|
+
* Auth bridge config for an app shell, desktop-aware.
|
|
29
|
+
*
|
|
30
|
+
* Desktop (Electron) shells must NOT stand up the cross-TLD iframe bridge: the
|
|
31
|
+
* window is served from a custom scheme, the hidden iframe can never share a
|
|
32
|
+
* cookie jar with it, and the desktop shell owns its own session. Returning
|
|
33
|
+
* `undefined` there mirrors the per-shell `resolveAppAuthBridgeConfig()` that
|
|
34
|
+
* products implement today (see vibecontrols-app `src/electronRuntime.ts`).
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveShellAuthBridgeConfig(): RuntimeAuthBridgeConfig | undefined;
|
|
27
37
|
//# sourceMappingURL=authBridgeUrls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authBridgeUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/authBridgeUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"authBridgeUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/authBridgeUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAyCD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,IAAI,uBAAuB,CAcjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,IAAI,uBAAuB,GAAG,SAAS,CAGlF"}
|
|
@@ -1,31 +1,35 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isDesktop as e } from "../native/desktop.js";
|
|
2
|
+
import { ALL_PRODUCT_DOMAINS as t, ALPHA_HOSTS as n, PROD_HOSTS as r, getCurrentHostname as i } from "./gatewayUrls.js";
|
|
2
3
|
//#region src/shared/config/authBridgeUrls.ts
|
|
3
|
-
var
|
|
4
|
+
var a = {
|
|
4
5
|
url: "https://app.burdenoff.com/auth/session-bridge",
|
|
5
|
-
allowedOrigins:
|
|
6
|
+
allowedOrigins: t.map((e) => `https://app.${e}`).join(","),
|
|
6
7
|
debug: !1
|
|
7
|
-
},
|
|
8
|
+
}, o = {
|
|
8
9
|
url: "https://alphaapp.burdenoff.com/auth/session-bridge",
|
|
9
|
-
allowedOrigins:
|
|
10
|
+
allowedOrigins: t.map((e) => `https://alphaapp.${e}`).join(","),
|
|
10
11
|
debug: !1
|
|
11
|
-
},
|
|
12
|
+
}, s = {
|
|
12
13
|
url: "https://app.local.burdenoff.com/auth/session-bridge",
|
|
13
14
|
allowedOrigins: "*",
|
|
14
15
|
debug: !0
|
|
15
16
|
};
|
|
16
|
-
function
|
|
17
|
+
function c(e) {
|
|
17
18
|
return e ? e === "localhost" || e === "127.0.0.1" || e === "0.0.0.0" || e === "[::1]" || e === "::1" || e.endsWith(".localhost") : !1;
|
|
18
19
|
}
|
|
19
|
-
function
|
|
20
|
+
function l() {
|
|
20
21
|
return {
|
|
21
22
|
url: `${typeof window > "u" ? "" : window.location.origin}/auth/session-bridge`,
|
|
22
23
|
allowedOrigins: "*",
|
|
23
24
|
debug: !0
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
|
-
function
|
|
27
|
-
let e =
|
|
28
|
-
return
|
|
27
|
+
function u() {
|
|
28
|
+
let e = i();
|
|
29
|
+
return r.has(e) ? a : n.has(e) ? o : c(e) ? l() : s;
|
|
30
|
+
}
|
|
31
|
+
function d() {
|
|
32
|
+
if (!e()) return u();
|
|
29
33
|
}
|
|
30
34
|
//#endregion
|
|
31
|
-
export {
|
|
35
|
+
export { u as resolveAuthBridgeConfig, d as resolveShellAuthBridgeConfig };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatewayUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/gatewayUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"gatewayUrls.d.ts","sourceRoot":"","sources":["../../../src/shared/config/gatewayUrls.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAoBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UA+C/B,CAAC;AAEF,eAAO,MAAM,UAAU,aAGrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,aAOtB,CAAC;AAEH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C;AAuCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CAqCvD"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
+
import { getDesktopGatewayUrls as e } from "../native/desktop.js";
|
|
1
2
|
//#region src/shared/config/gatewayUrls.ts
|
|
2
|
-
var
|
|
3
|
+
var t = {
|
|
3
4
|
workspaceBaseUrl: "https://alphagraphqlworkspaces.burdenoff.com",
|
|
4
5
|
globalBaseUrl: "https://alphagraphql.burdenoff.com",
|
|
5
6
|
publicStoreBaseUrl: "https://alphagraphql.burdenoff.com"
|
|
6
|
-
},
|
|
7
|
+
}, n = {
|
|
7
8
|
workspaceBaseUrl: "https://graphqlworkspaces.burdenoff.com",
|
|
8
9
|
globalBaseUrl: "https://graphql.burdenoff.com",
|
|
9
10
|
publicStoreBaseUrl: "https://graphql.burdenoff.com"
|
|
10
|
-
},
|
|
11
|
+
}, r = {
|
|
11
12
|
workspaceBaseUrl: "https://gw-wspace.local.burdenoff.com",
|
|
12
13
|
globalBaseUrl: "https://gw-global.local.burdenoff.com",
|
|
13
14
|
publicStoreBaseUrl: "https://gw-global.local.burdenoff.com"
|
|
14
|
-
},
|
|
15
|
-
function
|
|
15
|
+
}, i = /* @__PURE__ */ "burdenoff.com,vibecontrols.com,fluidgrids.com,fluidgrids.ai,botlit.ai,botmanor.com,bigconsole.com,gethealthybowl.com,headshotmarketing.com,timecampus.com,ggnomad.com,movethewheels.com,crewfoundry.com,planmagnet.com,eventfullymanaged.com,kadaikodi.com,assethandler.com,technospam.com,semanticfed.com,manufacturedops.com,theglobalfuel.com,housingvista.com,proserviceworld.com,mybodyshield.com,artistrybase.com,collabkin.com,brainyrich.com,theculturepost.com,comradecircle.com,cosmicintersection.com,govcitizenhub.com,intelwatchtower.com,ecoimpacthub.com,buildmyiq.com,fluidgrids.ai,atheletebridge.com,adaptercloud.com,coolandlovely.com,subscriberbot.com,labsofscience.com,hookmovies.com".split(","), a = new Set([...i.map((e) => `app.${e}`), "admin.burdenoff.com"]), o = new Set([...i.map((e) => `alphaapp.${e}`), "alphaadmin.burdenoff.com"]);
|
|
16
|
+
function s() {
|
|
16
17
|
return typeof window > "u" ? "" : window.location.hostname.toLowerCase();
|
|
17
18
|
}
|
|
18
|
-
function
|
|
19
|
+
function c(e) {
|
|
19
20
|
let t = `https://${e}`;
|
|
20
21
|
return {
|
|
21
22
|
workspaceBaseUrl: t,
|
|
@@ -23,22 +24,24 @@ function s(e) {
|
|
|
23
24
|
publicStoreBaseUrl: t
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
|
-
function
|
|
27
|
+
function l(e) {
|
|
27
28
|
return e ? e === "localhost" || e === "127.0.0.1" || e === "0.0.0.0" || e === "[::1]" || e === "::1" || e.endsWith(".localhost") || e.endsWith(".local.burdenoff.com") : !1;
|
|
28
29
|
}
|
|
29
|
-
var
|
|
30
|
-
function
|
|
31
|
-
let
|
|
32
|
-
if (i
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
var u = !1;
|
|
31
|
+
function d() {
|
|
32
|
+
let i = e();
|
|
33
|
+
if (i) return i;
|
|
34
|
+
let d = s();
|
|
35
|
+
if (a.has(d)) return n;
|
|
36
|
+
if (o.has(d)) return c(d);
|
|
37
|
+
if (l(d)) {
|
|
38
|
+
let e = f();
|
|
39
|
+
if (e === "prod") return u || (u = !0, console.warn("[gatewayUrls] WARNING: localhost dev server is configured to hit PRODUCTION backends (VITE_GATEWAY_TARGET=prod). Any mutation will modify real prod data. Remove the env var or delete .env.local to disable.")), n;
|
|
40
|
+
if (e === "alpha") return t;
|
|
38
41
|
}
|
|
39
|
-
return
|
|
42
|
+
return r;
|
|
40
43
|
}
|
|
41
|
-
function
|
|
44
|
+
function f() {
|
|
42
45
|
try {
|
|
43
46
|
return {
|
|
44
47
|
BASE_URL: "/",
|
|
@@ -52,4 +55,4 @@ function d() {
|
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
//#endregion
|
|
55
|
-
export {
|
|
58
|
+
export { i as ALL_PRODUCT_DOMAINS, o as ALPHA_HOSTS, a as PROD_HOSTS, s as getCurrentHostname, d as resolveGatewayUrls };
|
|
@@ -66,7 +66,7 @@ export declare function getGatewayConfig(gateway: Gateway): {
|
|
|
66
66
|
export declare function getGatewayUrl(baseUrl: string | undefined, gateway: Gateway): string;
|
|
67
67
|
export { resolveGatewayUrls } from './gatewayUrls';
|
|
68
68
|
export type { RuntimeGatewayUrls } from './gatewayUrls';
|
|
69
|
-
export { resolveAuthBridgeConfig } from './authBridgeUrls';
|
|
69
|
+
export { resolveAuthBridgeConfig, resolveShellAuthBridgeConfig } from './authBridgeUrls';
|
|
70
70
|
export type { RuntimeAuthBridgeConfig } from './authBridgeUrls';
|
|
71
71
|
export { PRODUCTS, PRODUCT_URLS, getProductUrl, getProductsWithUrls } from './products';
|
|
72
72
|
export type { ProductConfig } from './products';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;QAEjB,uCAAuC;;QAEvC,4BAA4B;;QAE5B,6FAA6F;;;;QAI7F,uCAAuC;;QAEvC,4BAA4B;;QAE5B,6FAA6F;;QAE7F,uDAAuD;;;CAGjD,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE5C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAMlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;IApC7C,uCAAuC;;IAEvC,4BAA4B;;IAE5B,6FAA6F;;;IAI7F,uCAAuC;;IAEvC,4BAA4B;;IAE5B,6FAA6F;;IAE7F,uDAAuD;;EAwB1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAKnF;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;QAEjB,uCAAuC;;QAEvC,4BAA4B;;QAE5B,6FAA6F;;;;QAI7F,uCAAuC;;QAEvC,4BAA4B;;QAE5B,6FAA6F;;QAE7F,uDAAuD;;;CAGjD,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;AACjD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC;AAE5C;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAMlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;IApC7C,uCAAuC;;IAEvC,4BAA4B;;IAE5B,6FAA6F;;;IAI7F,uCAAuC;;IAEvC,4BAA4B;;IAE5B,6FAA6F;;IAE7F,uDAAuD;;EAwB1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAKnF;AAGD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -22,6 +22,13 @@ export interface NavItem {
|
|
|
22
22
|
* UI shaping only: the gateway `@rbac` layer stays the enforcement point.
|
|
23
23
|
*/
|
|
24
24
|
requiredPermission?: string | string[];
|
|
25
|
+
/**
|
|
26
|
+
* Priority for the installed-app bottom tab bar (`MobileTabBar`). Items that
|
|
27
|
+
* declare one are promoted into the visible tabs first, ascending (0 = most
|
|
28
|
+
* important); items without it fall back to registry `order`. Optional —
|
|
29
|
+
* the tab bar works without it.
|
|
30
|
+
*/
|
|
31
|
+
mobilePriority?: number;
|
|
25
32
|
}
|
|
26
33
|
interface NavRegistryStore {
|
|
27
34
|
items: NavItem[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavRegistry.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/shell/useNavRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"useNavRegistry.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/shell/useNavRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,mBAAmB,+EAa7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePWA.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/usePWA.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePWA.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/usePWA.ts"],"names":[],"mappings":"AAsBA,UAAU,QAAQ;IAChB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,YAAY,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,YAAa,SAAQ,QAAQ;IACrC,iCAAiC;IACjC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,gCAAgC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,iCAAiC;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,UAAU,aAAa;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,YAAY,CAiNhE"}
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { useCallback as e, useEffect as t, useState as n } from "react";
|
|
2
2
|
//#region src/shared/hooks/usePWA.ts
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
var r = "burdenoff:pwaInstallAvailable", i = "burdenoff:pwaInstalled", a = "burdenoff:pwaUpdateReady";
|
|
4
|
+
function o(o = {}) {
|
|
5
|
+
let { autoUpdate: s = !0, updateCheckIntervalMs: c = 6e4 } = o, [l, u] = n(null), [d, f] = n(!1), [p, m] = n(!1), [h, g] = n(!1), [_, v] = n(!1), [y, b] = n(!1), [x, S] = n(null);
|
|
5
6
|
return t(() => {
|
|
6
7
|
let e = setTimeout(() => {
|
|
7
8
|
let e = window.matchMedia("(display-mode: standalone)").matches || window.navigator.standalone === !0;
|
|
8
|
-
|
|
9
|
+
g(e), m(e);
|
|
9
10
|
}, 0);
|
|
10
11
|
return () => clearTimeout(e);
|
|
11
12
|
}, []), t(() => {
|
|
12
13
|
if (!("serviceWorker" in navigator)) return;
|
|
13
|
-
let e = !1, t, n, r = !1,
|
|
14
|
+
let e = !1, t, n, r = !1, i = () => {
|
|
14
15
|
navigator.serviceWorker.addEventListener("controllerchange", () => {
|
|
15
16
|
r || (r = !0, window.location.reload());
|
|
16
17
|
});
|
|
17
18
|
};
|
|
18
19
|
return navigator.serviceWorker.register("/sw.js").then((r) => {
|
|
19
|
-
e || (
|
|
20
|
+
e || (S(r), v(!0), s && r.waiting && navigator.serviceWorker.controller && (i(), r.waiting.postMessage("skipWaiting")), r.addEventListener("updatefound", () => {
|
|
20
21
|
let e = r.installing;
|
|
21
22
|
e && e.addEventListener("statechange", () => {
|
|
22
|
-
e.state === "installed" && navigator.serviceWorker.controller && (
|
|
23
|
+
e.state === "installed" && navigator.serviceWorker.controller && (b(!0), s && (i(), e.postMessage("skipWaiting")));
|
|
23
24
|
});
|
|
24
|
-
}),
|
|
25
|
+
}), c > 0 && (t = setInterval(() => {
|
|
25
26
|
r.update().catch(() => void 0);
|
|
26
|
-
},
|
|
27
|
+
}, c)), n = () => {
|
|
27
28
|
document.visibilityState === "visible" && r.update().catch(() => void 0);
|
|
28
29
|
}, document.addEventListener("visibilitychange", n));
|
|
29
30
|
}).catch((e) => {
|
|
@@ -31,38 +32,41 @@ function r(r = {}) {
|
|
|
31
32
|
}), () => {
|
|
32
33
|
e = !0, t && clearInterval(t), n && document.removeEventListener("visibilitychange", n);
|
|
33
34
|
};
|
|
34
|
-
}, [
|
|
35
|
-
let e = (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
}, [s, c]), t(() => {
|
|
36
|
+
let e = () => {
|
|
37
|
+
let e = window.__burdenoffPwaInstallPrompt;
|
|
38
|
+
e && (u(e), f(!0));
|
|
39
|
+
}, t = (e) => {
|
|
40
|
+
e.preventDefault(), u(e), f(!0);
|
|
41
|
+
}, n = () => {
|
|
42
|
+
m(!0), f(!1), u(null);
|
|
43
|
+
}, o = () => b(!0);
|
|
44
|
+
return e(), window.addEventListener("beforeinstallprompt", t), window.addEventListener("appinstalled", n), window.addEventListener(r, e), window.addEventListener(i, n), window.addEventListener(a, o), () => {
|
|
45
|
+
window.removeEventListener("beforeinstallprompt", t), window.removeEventListener("appinstalled", n), window.removeEventListener(r, e), window.removeEventListener(i, n), window.removeEventListener(a, o);
|
|
42
46
|
};
|
|
43
47
|
}, []), {
|
|
44
|
-
canInstall:
|
|
45
|
-
isInstalled:
|
|
46
|
-
isStandalone:
|
|
47
|
-
isServiceWorkerReady:
|
|
48
|
-
hasUpdate:
|
|
48
|
+
canInstall: d,
|
|
49
|
+
isInstalled: p,
|
|
50
|
+
isStandalone: h,
|
|
51
|
+
isServiceWorkerReady: _,
|
|
52
|
+
hasUpdate: y,
|
|
49
53
|
install: e(async () => {
|
|
50
|
-
if (!
|
|
54
|
+
if (!l) return !1;
|
|
51
55
|
try {
|
|
52
|
-
await
|
|
53
|
-
let
|
|
54
|
-
return e === "accepted" && (
|
|
56
|
+
await l.prompt();
|
|
57
|
+
let e = (await l.userChoice)?.outcome;
|
|
58
|
+
return e === "accepted" && (m(!0), f(!1)), u(null), window.__burdenoffPwaInstallPrompt = null, e === "accepted";
|
|
55
59
|
} catch (e) {
|
|
56
60
|
return console.error("[PWA] Install failed:", e), !1;
|
|
57
61
|
}
|
|
58
|
-
}, [
|
|
62
|
+
}, [l]),
|
|
59
63
|
update: e(() => {
|
|
60
|
-
|
|
61
|
-
}, [
|
|
64
|
+
x?.waiting && (x.waiting.postMessage("skipWaiting"), window.location.reload());
|
|
65
|
+
}, [x]),
|
|
62
66
|
dismissInstall: e(() => {
|
|
63
|
-
|
|
67
|
+
f(!1), localStorage.setItem("pwa-install-dismissed", Date.now().toString());
|
|
64
68
|
}, [])
|
|
65
69
|
};
|
|
66
70
|
}
|
|
67
71
|
//#endregion
|
|
68
|
-
export {
|
|
72
|
+
export { o as usePWA };
|