@buoy-gg/route-events 7.0.40 → 7.0.42
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 +11 -60
- package/lib/commonjs/RouteObserver.js +1 -54
- package/lib/commonjs/RouteParser.js +1 -314
- package/lib/commonjs/RouteTracker.js +1 -112
- package/lib/commonjs/RouteTracker.web.js +1 -0
- package/lib/commonjs/browserRouteRegistry.js +1 -0
- package/lib/commonjs/browserRoutes.js +1 -0
- package/lib/commonjs/components/NavigationStack.js +2 -572
- package/lib/commonjs/components/ReactNavigationRoutes.js +1 -836
- package/lib/commonjs/components/ReactNavigationRoutes.web.js +1 -0
- package/lib/commonjs/components/RouteEventDetail.js +1 -97
- package/lib/commonjs/components/RouteEventExpandedContent.js +1 -204
- package/lib/commonjs/components/RouteEventItemCompact.js +1 -191
- package/lib/commonjs/components/RouteEventsModalWithTabs.js +1 -717
- package/lib/commonjs/components/RouteEventsTimeline.js +1 -107
- package/lib/commonjs/components/RouteFilterViewV2.js +1 -42
- package/lib/commonjs/components/RoutesSitemap.js +2 -1035
- package/lib/commonjs/expoRouterStore.js +1 -121
- package/lib/commonjs/expoRouterStore.web.js +1 -0
- package/lib/commonjs/hooks/useRouteEvents.js +1 -57
- package/lib/commonjs/index.js +1 -161
- package/lib/commonjs/preset.js +1 -69
- package/lib/commonjs/stores/navigationStackStore.js +1 -45
- package/lib/commonjs/stores/routeEventStore.js +1 -136
- package/lib/commonjs/sync/routeEventsSyncAdapter.js +1 -275
- package/lib/commonjs/useNavigationStack.js +1 -408
- package/lib/commonjs/useNavigationStack.web.js +1 -0
- package/lib/commonjs/useRouteObserver.js +1 -73
- package/lib/commonjs/useRouteObserverReactNavigation.js +1 -109
- package/lib/commonjs/useRouteSitemap.js +1 -255
- package/lib/commonjs/utils/routeTemplate.js +1 -28
- package/lib/commonjs/utils/safeReactNavigation.js +1 -194
- package/lib/commonjs/utils/safeReactNavigation.web.js +1 -0
- package/lib/commonjs/utils/testIDs.js +1 -63
- package/lib/module/RouteObserver.js +1 -49
- package/lib/module/RouteParser.js +1 -309
- package/lib/module/RouteTracker.js +1 -109
- package/lib/module/RouteTracker.web.js +1 -0
- package/lib/module/browserRouteRegistry.js +1 -0
- package/lib/module/browserRoutes.js +1 -0
- package/lib/module/components/NavigationStack.js +2 -568
- package/lib/module/components/ReactNavigationRoutes.js +1 -832
- package/lib/module/components/ReactNavigationRoutes.web.js +1 -0
- package/lib/module/components/RouteEventDetail.js +1 -93
- package/lib/module/components/RouteEventExpandedContent.js +1 -200
- package/lib/module/components/RouteEventItemCompact.js +1 -187
- package/lib/module/components/RouteEventsModalWithTabs.js +1 -714
- package/lib/module/components/RouteEventsTimeline.js +1 -103
- package/lib/module/components/RouteFilterViewV2.js +1 -38
- package/lib/module/components/RoutesSitemap.js +2 -1033
- package/lib/module/expoRouterStore.js +1 -114
- package/lib/module/expoRouterStore.web.js +1 -0
- package/lib/module/hooks/useRouteEvents.js +1 -54
- package/lib/module/index.js +1 -69
- package/lib/module/preset.js +1 -66
- package/lib/module/stores/navigationStackStore.js +1 -41
- package/lib/module/stores/routeEventStore.js +1 -128
- package/lib/module/sync/routeEventsSyncAdapter.js +1 -273
- package/lib/module/useNavigationStack.js +1 -404
- package/lib/module/useNavigationStack.web.js +1 -0
- package/lib/module/useRouteObserver.js +1 -70
- package/lib/module/useRouteObserverReactNavigation.js +1 -106
- package/lib/module/useRouteSitemap.js +1 -250
- package/lib/module/utils/routeTemplate.js +1 -24
- package/lib/module/utils/safeReactNavigation.js +1 -185
- package/lib/module/utils/safeReactNavigation.web.js +1 -0
- package/lib/module/utils/testIDs.js +1 -55
- package/lib/typescript/RouteTracker.web.d.ts +2 -0
- package/lib/typescript/browserRouteRegistry.d.ts +4 -0
- package/lib/typescript/browserRoutes.d.ts +2 -0
- package/lib/typescript/components/ReactNavigationRoutes.web.d.ts +2 -0
- package/lib/typescript/expoRouterStore.web.d.ts +13 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/useNavigationStack.web.d.ts +4 -0
- package/lib/typescript/utils/routeTemplate.d.ts +13 -0
- package/lib/typescript/utils/safeReactNavigation.web.d.ts +22 -0
- package/lib/web/index.mjs +6 -0
- package/package.json +33 -13
- package/lib/typescript/RouteObserver.d.ts.map +0 -1
- package/lib/typescript/RouteParser.d.ts.map +0 -1
- package/lib/typescript/RouteTracker.d.ts.map +0 -1
- package/lib/typescript/components/NavigationStack.d.ts.map +0 -1
- package/lib/typescript/components/ReactNavigationRoutes.d.ts.map +0 -1
- package/lib/typescript/components/RouteEventDetail.d.ts.map +0 -1
- package/lib/typescript/components/RouteEventExpandedContent.d.ts.map +0 -1
- package/lib/typescript/components/RouteEventItemCompact.d.ts.map +0 -1
- package/lib/typescript/components/RouteEventsModalWithTabs.d.ts.map +0 -1
- package/lib/typescript/components/RouteEventsTimeline.d.ts.map +0 -1
- package/lib/typescript/components/RouteFilterViewV2.d.ts.map +0 -1
- package/lib/typescript/components/RoutesSitemap.d.ts.map +0 -1
- package/lib/typescript/expoRouterStore.d.ts.map +0 -1
- package/lib/typescript/hooks/useRouteEvents.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/preset.d.ts.map +0 -1
- package/lib/typescript/stores/navigationStackStore.d.ts.map +0 -1
- package/lib/typescript/stores/routeEventStore.d.ts.map +0 -1
- package/lib/typescript/sync/routeEventsSyncAdapter.d.ts.map +0 -1
- package/lib/typescript/useNavigationStack.d.ts.map +0 -1
- package/lib/typescript/useRouteObserver.d.ts.map +0 -1
- package/lib/typescript/useRouteObserverReactNavigation.d.ts.map +0 -1
- package/lib/typescript/useRouteSitemap.d.ts.map +0 -1
- package/lib/typescript/utils/routeTemplate.d.ts.map +0 -1
- package/lib/typescript/utils/safeReactNavigation.d.ts.map +0 -1
- package/lib/typescript/utils/testIDs.d.ts.map +0 -1
|
@@ -1,55 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Stable e2e handles for the routes tool.
|
|
5
|
-
*
|
|
6
|
-
* Everything in this tool is addressed by its PATH, never by a list index or a
|
|
7
|
-
* per-session id. Route events are a prepend-list whose indices shift on every
|
|
8
|
-
* navigation, the sitemap re-sorts and regroups as you search, and the stack
|
|
9
|
-
* renumbers itself on every push — the pathname is the one thing that means the
|
|
10
|
-
* same screen on the next launch, and the only thing a test can name up front.
|
|
11
|
-
*
|
|
12
|
-
* A pathname is not testID-safe as it stands (`/blog/2024/react-native-tips`,
|
|
13
|
-
* `/pokemon/[id]`), so it is slugged the way the rest of Buoy's handles read:
|
|
14
|
-
* `buoy-routes-route-blog-year-slug`.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/** Any path-ish string → a testID-safe slug (`/` → `-`, brackets dropped). */
|
|
18
|
-
export function pathSlug(path) {
|
|
19
|
-
return String(path).toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "root";
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* `buoy-routes-event-row-<slug>-<visit>` for one row of the events timeline.
|
|
24
|
-
*
|
|
25
|
-
* The visit number is part of the handle because revisiting a screen is the
|
|
26
|
-
* normal case here: three trips to `/about` would otherwise be three views
|
|
27
|
-
* sharing one testID, which Detox reports as "multiple elements found" — an
|
|
28
|
-
* ambiguity error where the test meant "the second visit". It also makes the
|
|
29
|
-
* tool's own visit counting addressable rather than merely visible.
|
|
30
|
-
*/
|
|
31
|
-
export function eventRowTestID(pathname, visitNumber) {
|
|
32
|
-
return `buoy-routes-event-row-${pathSlug(pathname)}-${visitNumber}`;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/** `buoy-routes-route-<slug>` for one row of the sitemap. */
|
|
36
|
-
export function sitemapRouteTestID(path) {
|
|
37
|
-
return `buoy-routes-route-${pathSlug(path)}`;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/** `buoy-routes-group-<slug>` for a sitemap group header. */
|
|
41
|
-
export function sitemapGroupTestID(title) {
|
|
42
|
-
return `buoy-routes-group-${pathSlug(title)}`;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* `buoy-routes-stack-item-<index>` for one frame of the navigation stack.
|
|
47
|
-
*
|
|
48
|
-
* The exception to addressing by path: a stack legitimately holds the same
|
|
49
|
-
* route twice (push `/route-bench/1` from `/route-bench/1`), and its whole
|
|
50
|
-
* subject is POSITION — "index 2 of 4" is what the row means, so the position
|
|
51
|
-
* is what the handle should say.
|
|
52
|
-
*/
|
|
53
|
-
export function stackItemTestID(index) {
|
|
54
|
-
return `buoy-routes-stack-item-${index}`;
|
|
55
|
-
}
|
|
1
|
+
"use strict";export function pathSlug(t){return String(t).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"root"}export function eventRowTestID(t,e){return`buoy-routes-event-row-${pathSlug(t)}-${e}`}export function sitemapRouteTestID(t){return`buoy-routes-route-${pathSlug(t)}`}export function sitemapGroupTestID(t){return`buoy-routes-group-${pathSlug(t)}`}export function stackItemTestID(t){return`buoy-routes-stack-item-${t}`}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function isExpoRouterStoreSupported(): boolean;
|
|
2
|
+
export declare function loadRouteNode(): any;
|
|
3
|
+
export declare function getExpoRouterStore(): {
|
|
4
|
+
routeNode: any;
|
|
5
|
+
navigationRef: {
|
|
6
|
+
isReady: () => boolean;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export declare function getRouteNodeMetadata(): {
|
|
10
|
+
source: 'build' | 'src' | null;
|
|
11
|
+
lastLoadedAt: number | null;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=expoRouterStore.web.d.ts.map
|
|
@@ -10,6 +10,7 @@ export { routeEventsToolPreset, createRouteEventsTool } from "./preset";
|
|
|
10
10
|
export { RouteEventsModalWithTabs, RoutesToolView, } from "./components/RouteEventsModalWithTabs";
|
|
11
11
|
export type { RouteEventsModalWithTabsProps } from "./components/RouteEventsModalWithTabs";
|
|
12
12
|
export { RouteTracker } from "./RouteTracker";
|
|
13
|
+
export { registerBrowserRoutes } from "./browserRouteRegistry";
|
|
13
14
|
export { RoutesSitemap } from "./components/RoutesSitemap";
|
|
14
15
|
export type { RoutesSitemapProps } from "./components/RoutesSitemap";
|
|
15
16
|
export { NavigationStack } from "./components/NavigationStack";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { UseNavigationStackResult } from './useNavigationStack';
|
|
2
|
+
export type { UseNavigationStackResult, StackDisplayItem } from './useNavigationStack';
|
|
3
|
+
export declare function useNavigationStack(): UseNavigationStackResult;
|
|
4
|
+
//# sourceMappingURL=useNavigationStack.web.d.ts.map
|
|
@@ -5,4 +5,17 @@
|
|
|
5
5
|
* matches the pathname (i.e. the route is fully static).
|
|
6
6
|
*/
|
|
7
7
|
export declare function getRouteTemplate(pathname: string, segments: string[]): string | null;
|
|
8
|
+
/**
|
|
9
|
+
* The href that reopens a recorded route: its pathname plus the params that are
|
|
10
|
+
* not already in the path, as a query string. Expo Router reports dynamic
|
|
11
|
+
* segment values (`/order/42` → `{ id: "42" }`) and search params (`?menu=1`)
|
|
12
|
+
* in one `params` object; only the second kind needs to be carried, because the
|
|
13
|
+
* first is already in the pathname.
|
|
14
|
+
*/
|
|
15
|
+
export declare function routeHref(pathname: string, params: Record<string, string | string[]> | undefined): string;
|
|
16
|
+
/** Split an href from {@link routeHref} back into its path and params. */
|
|
17
|
+
export declare function splitRouteHref(href: string): {
|
|
18
|
+
pathname: string;
|
|
19
|
+
params: Record<string, string>;
|
|
20
|
+
};
|
|
8
21
|
//# sourceMappingURL=routeTemplate.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare function useSafeNavigation(): {
|
|
2
|
+
push(path: string | {
|
|
3
|
+
pathname: string;
|
|
4
|
+
params?: Record<string, unknown>;
|
|
5
|
+
}): void;
|
|
6
|
+
replace(path: string | {
|
|
7
|
+
pathname: string;
|
|
8
|
+
params?: Record<string, unknown>;
|
|
9
|
+
}): void;
|
|
10
|
+
back(): void;
|
|
11
|
+
canGoBack(): boolean;
|
|
12
|
+
navigate(path: string): void;
|
|
13
|
+
setParams(params: Record<string, unknown>): void;
|
|
14
|
+
dismiss(count?: number): void;
|
|
15
|
+
dismissAll(): never;
|
|
16
|
+
};
|
|
17
|
+
export declare function useSafeNavigationState(selector: (state: any) => any): any;
|
|
18
|
+
export declare function useSafeNavigationContainerRef(): undefined;
|
|
19
|
+
export declare function getCommonActions(): null;
|
|
20
|
+
export declare function getStackActions(): null;
|
|
21
|
+
export declare function isReactNavigationAvailable(): boolean;
|
|
22
|
+
//# sourceMappingURL=safeReactNavigation.web.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use client";var It=Object.defineProperty;var bo=Object.getOwnPropertyDescriptor;var vo=Object.getOwnPropertyNames;var xo=Object.prototype.hasOwnProperty;var So=(e,t)=>{for(var o in t)It(e,o,{get:t[o],enumerable:true})},kt=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of vo(t))!xo.call(e,a)&&a!==o&&It(e,a,{get:()=>t[a],enumerable:!(r=bo(t,a))||r.enumerable});return e},Co=(e,t,o)=>(kt(e,t,"default"),o&&kt(o,t,"default"));typeof window<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);import{RoutesIcon as To}from"@buoy-gg/floating-tools-core/web";import{useState as we,useCallback as ue,useEffect as Bt,useRef as Ro,useMemo as Ie}from"react";var Dt={};So(Dt,{AccessibilityInfo:()=>Bo,ActivityIndicator:()=>xr,Alert:()=>_,Animated:()=>Do,AppRegistry:()=>Po,AppState:()=>Lo,Appearance:()=>Eo,BackHandler:()=>$o,Button:()=>Sr,CheckBox:()=>Jo,Clipboard:()=>Fo,DeviceEventEmitter:()=>cr,Dimensions:()=>zo,Easing:()=>Ao,FlatList:()=>Pt,I18nManager:()=>No,Image:()=>Qo,ImageBackground:()=>qo,InteractionManager:()=>jo,Keyboard:()=>Wo,KeyboardAvoidingView:()=>Zo,LayoutAnimation:()=>Oo,Linking:()=>Vo,LogBox:()=>lr,Modal:()=>br,NativeEventEmitter:()=>Ho,NativeModules:()=>ko,PanResponder:()=>Mo,Picker:()=>Xo,PixelRatio:()=>Uo,Platform:()=>Et,Pressable:()=>fr,ProgressBar:()=>Yo,RefreshControl:()=>er,SafeAreaView:()=>tr,ScrollView:()=>Ue,SectionList:()=>or,Share:()=>Go,StatusBar:()=>rr,StyleSheet:()=>ve,Switch:()=>vr,Text:()=>p,TextInput:()=>Lt,Touchable:()=>ar,TouchableHighlight:()=>gr,TouchableNativeFeedback:()=>nr,TouchableOpacity:()=>W,TouchableWithoutFeedback:()=>yr,UIManager:()=>Ko,Vibration:()=>_o,View:()=>l,VirtualizedList:()=>ir,YellowBox:()=>sr,findNodeHandle:()=>Cr,unstable_createElement:()=>Io,useColorScheme:()=>ur,useLocaleContext:()=>dr,useWindowDimensions:()=>pr});Co(Dt,wo);import*as wo from"react-native-web";import{unstable_createElement as Io,NativeModules as ko,AccessibilityInfo as Bo,Animated as Do,Appearance as Eo,AppRegistry as Po,AppState as Lo,BackHandler as $o,Clipboard as Fo,Dimensions as zo,Easing as Ao,I18nManager as No,Keyboard as Wo,InteractionManager as jo,LayoutAnimation as Oo,Linking as Vo,NativeEventEmitter as Ho,PanResponder as Mo,PixelRatio as Uo,Platform as Et,Share as Go,StyleSheet as ve,UIManager as Ko,Vibration as _o,CheckBox as Jo,FlatList as Pt,Image as Qo,ImageBackground as qo,KeyboardAvoidingView as Zo,Picker as Xo,ProgressBar as Yo,RefreshControl as er,SafeAreaView as tr,SectionList as or,StatusBar as rr,Touchable as ar,TouchableNativeFeedback as nr,VirtualizedList as ir,YellowBox as sr,LogBox as lr,DeviceEventEmitter as cr,useColorScheme as ur,useLocaleContext as dr,useWindowDimensions as pr}from"react-native-web";import*as Y from"react-native-web";import{createElement as mr,forwardRef as hr}from"react";function te(e){let t=hr((r,a)=>{let{accessibilityState:n,accessibilityValue:i,...u}=r;for(let c of["busy","checked","disabled","expanded","selected"])n?.[c]!==void 0&&u[`aria-${c}`]===void 0&&(u[`aria-${c}`]=n[c]);for(let[c,h]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))i?.[c]!==void 0&&u[`aria-${h}`]===void 0&&(u[`aria-${h}`]=i[c]);return mr(e,{...u,ref:a})}),o=e.State;return o&&Object.assign(t,{State:o}),t.displayName=e.displayName??e.name??"NativeWebView",t}var l=te(Y.View),p=te(Y.Text),Lt=te(Y.TextInput),W=te(Y.TouchableOpacity),gr=te(Y.TouchableHighlight),yr=te(Y.TouchableWithoutFeedback),fr=te(Y.Pressable),Ue=te(Y.ScrollView),br=te(Y.Modal),vr=te(Y.Switch),xr=te(Y.ActivityIndicator),Sr=te(Y.Button),Cr=Y.findNodeHandle,_={alert(e,t,o,r){if(typeof document>"u")return;let a=document.createElement("dialog");a.dataset.buoyRoot="",a.setAttribute("aria-label",e),a.style.cssText="position:fixed;inset:0;margin:auto;width:min(440px,90vw);padding:24px;border:1px solid #475569;border-radius:14px;background:#17212e;color:#f1f5f9;font:14px system-ui;box-shadow:0 20px 80px #0008;z-index:2147483647";let n=document.createElement("h2");if(n.textContent=e,n.style.cssText="font-size:18px;margin:0 0 12px",a.appendChild(n),t){let h=document.createElement("p");h.textContent=t,h.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",a.appendChild(h)}let i=document.createElement("div");i.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let u=o?.length?o:[{text:"OK"}],c=()=>{a.close?.(),a.remove()};for(let h of u){let I=document.createElement("button");I.type="button",I.textContent=h.text??"OK",I.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${h.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,I.onclick=()=>{c(),h.onPress?.()},i.appendChild(I)}a.addEventListener("cancel",h=>{h.preventDefault(),r?.cancelable!==false&&(c(),r?.onDismiss?.())}),a.appendChild(i),document.body.appendChild(a),a.showModal?a.showModal():a.setAttribute("open","")}};import{browserRouter as Bn}from"@buoy-gg/shared-ui/web/utils";function Tr(){return null}import{useSafeRouter as Rr,isExpoRouterAvailable as wr,windowDragProps as Ir,ToolEmptyState as kr,resolveListEmptyState as Br,usePersistedState as at,monoFont as Ge}from"@buoy-gg/shared-ui/web";import{JsModal as Dr,ModalHeader as ie,TabSelector as Er,formatRelativeTime as Pr,devToolsStorageKeys as $e,Trash2 as Lr,Filter as $r,SearchBar as $t,ToolbarCopyButton as nt,Lock as Fr,ProUpgradeModal as zr,PowerToggleButton as Ar,buoyColors as Nr,night as M,TickProvider as Ft,useLimit as Wr}from"@buoy-gg/shared-ui/web";import{useIsPro as jr}from"@buoy-gg/license/web";import{useEventStoreEvents as Or}from"@buoy-gg/shared-ui/web";import{BaseEventStore as Vr,devToolsStorageKeys as Hr,persistentStorage as Mr}from"@buoy-gg/shared-ui/web";var zt=class{constructor(){this.listeners=new Set}emit(e){this.listeners.forEach(t=>{try{t(e)}catch(o){console.error("[RouteObserver] Error in listener:",o)}})}addListener(e){return this.listeners.add(e),()=>this.listeners.delete(e)}removeListener(e){this.listeners.delete(e)}},Fe=new zt;var Ur=class extends Vr{constructor(){super({storeName:"route-events",maxEvents:500});this.routeObserverUnsubscribe=null;this.bootCaptureRelease=null;this.bootCaptureHydrated=false}setBootCapture(e){e&&!this.bootCaptureRelease?this.bootCaptureRelease=this.subscribeToEvents(()=>{}):!e&&this.bootCaptureRelease&&(this.bootCaptureRelease(),this.bootCaptureRelease=null)}hydrateBootCapture(){this.bootCaptureHydrated||(this.bootCaptureHydrated=true,Mr.getItem(Hr.routeEvents.isMonitoring()).then(e=>{this.bootCaptureRelease||this.setBootCapture(e!=="false")}).catch(()=>this.setBootCapture(true)))}startCapturing(){this.routeObserverUnsubscribe||(this.routeObserverUnsubscribe=Fe.addListener(e=>{this.addEvent(e)}))}stopCapturing(){this.routeObserverUnsubscribe&&(this.routeObserverUnsubscribe(),this.routeObserverUnsubscribe=null)}isCapturing(){return this.routeObserverUnsubscribe!==null}isListening(){return this.isCapturing()}},he=new Ur;function At(e={}){let{maxEvents:t=500,enabled:o=true}=e,{events:r,clearEvents:a,isActive:n}=Or(he,{maxEvents:t,enabled:o});return{events:r,clearEvents:a,isListening:n}}import{Navigation as Gr,night as Ke,monoFont as Kr}from"@buoy-gg/shared-ui/web";import{InlineCopyButton as ze,night as it,monoFont as st}from"@buoy-gg/shared-ui/web";import{DataViewer as _r}from"@buoy-gg/shared-ui/web/dataViewer";import{jsx as F,jsxs as J}from"react/jsx-runtime";function Jr(e){if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/6e4),o=(e%6e4/1e3).toFixed(0);return`${t}m ${o}s`}function lt({event:e,visitNumber:t,routeTemplate:o}){let r=e.params&&Object.keys(e.params).length>0;return J(l,{style:x.container,children:[J(l,{style:x.section,children:[o&&J(l,{style:x.detailRow,testID:"buoy-routes-detail-template",children:[F(p,{style:x.detailLabel,children:"Template:"}),F(p,{style:x.detailValue,testID:"buoy-routes-detail-template-value",children:o}),F(ze,{value:o,buttonStyle:x.copyButton})]}),e.previousPathname&&J(l,{style:x.detailRow,testID:"buoy-routes-detail-from",children:[F(p,{style:x.detailLabel,children:"From:"}),F(p,{style:x.detailValue,testID:"buoy-routes-detail-from-value",children:e.previousPathname}),F(ze,{value:e.previousPathname,buttonStyle:x.copyButton})]}),J(l,{style:x.detailRow,testID:"buoy-routes-detail-to",children:[F(p,{style:x.detailLabel,children:"To:"}),F(p,{style:x.detailValue,testID:"buoy-routes-detail-to-value",children:e.pathname}),F(ze,{value:e.pathname,buttonStyle:x.copyButton})]})]}),J(l,{style:x.section,children:[e.timeSincePrevious!==void 0&&J(l,{style:x.detailRow,testID:"buoy-routes-detail-duration",children:[F(p,{style:x.detailLabel,children:"Duration:"}),F(p,{style:x.detailValue,testID:"buoy-routes-detail-duration-value",children:Jr(e.timeSincePrevious)})]}),J(l,{style:x.detailRow,testID:"buoy-routes-detail-time",children:[F(p,{style:x.detailLabel,children:"Time:"}),F(p,{style:x.detailValue,testID:"buoy-routes-detail-time-value",children:new Date(e.timestamp).toLocaleString()})]})]}),J(l,{style:x.section,children:[e.segments&&e.segments.length>0&&J(l,{style:x.detailRow,testID:"buoy-routes-detail-segments",children:[F(p,{style:x.detailLabel,children:"Segments:"}),F(p,{style:x.detailValue,testID:"buoy-routes-detail-segments-value",children:e.segments.join(" \u2192 ")}),F(ze,{value:JSON.stringify(e.segments),buttonStyle:x.copyButton})]}),r&&J(l,{style:x.dataViewerContainer,children:[J(l,{style:x.dataViewerHeader,children:[J(p,{style:x.dataViewerTitle,testID:"buoy-routes-detail-params-title",children:["Parameters (",Object.keys(e.params).length,")"]}),F(ze,{value:JSON.stringify(e.params,null,2),buttonStyle:x.copyButton})]}),F(_r,{data:e.params,title:"",showTypeFilter:true,rawMode:true,initialExpanded:true})]}),t>1&&J(l,{style:x.detailRow,testID:"buoy-routes-detail-visited",children:[F(p,{style:x.detailLabel,children:"Visited:"}),J(p,{style:x.detailValue,testID:"buoy-routes-detail-visited-value",children:[t," time",t!==1?"s":""]})]})]})]})}var x=ve.create({container:{gap:12},section:{gap:8},detailRow:{flexDirection:"row",alignItems:"center",gap:8},detailLabel:{fontSize:10,color:it.color.textSecondary,fontFamily:st,fontWeight:"600",minWidth:70},detailValue:{fontSize:11,color:it.color.text,fontFamily:st,flex:1},copyButton:{padding:4,borderRadius:4},dataViewerContainer:{marginTop:4},dataViewerHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:8},dataViewerTitle:{fontSize:11,color:it.color.textSecondary,fontFamily:st,fontWeight:"600"}});function ct(e,t){if(!t||t.length===0)return null;let o="/"+t.map(r=>/^\d+$/.test(r)||/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r)?"[id]":r).join("/");return o!==e?o:null}function Nt(e,t){if(!t)return e;let o=new Set(e.split("/").filter(Boolean).map(a=>{try{return decodeURIComponent(a)}catch{return a}})),r=[];for(let[a,n]of Object.entries(t)){let i=Array.isArray(n)?n:[n];if(!(i.length>0&&i.every(u=>o.has(String(u)))))for(let u of i)r.push(`${encodeURIComponent(a)}=${encodeURIComponent(String(u))}`)}return r.length?`${e}?${r.join("&")}`:e}function Qr(e){let t=e.indexOf("?");if(t<0)return{pathname:e,params:{}};let o={};for(let r of e.slice(t+1).split("&")){if(!r)continue;let[a,n=""]=r.split("=");try{o[decodeURIComponent(a)]=decodeURIComponent(n)}catch{o[a]=n}}return{pathname:e.slice(0,t),params:o}}import{jsx as Ae,jsxs as Wt}from"react/jsx-runtime";function jt({event:e,visitNumber:t=1,onNavigate:o}){let r=ct(e.pathname,e.segments);return Wt(l,{style:ke.container,children:[Ae(Ue,{testID:"buoy-routes-detail-scroll",style:ke.scroll,contentContainerStyle:ke.scrollContent,showsVerticalScrollIndicator:true,children:Ae(lt,{event:e,visitNumber:t,routeTemplate:r})}),o&&Ae(l,{style:ke.footer,children:Wt(W,{style:ke.goButton,onPress:()=>o(Nt(e.pathname,e.params)),activeOpacity:.8,testID:"buoy-routes-detail-go",accessibilityRole:"button",accessibilityLabel:`Go to route ${e.pathname}`,children:[Ae(Gr,{size:16,color:Ke.color.onAccent}),Ae(p,{style:ke.goButtonText,children:"Go to route"})]})})]})}var ke=ve.create({container:{flex:1,backgroundColor:"transparent"},scroll:{flex:1},scrollContent:{padding:14},footer:{paddingHorizontal:16,paddingVertical:12,backgroundColor:"transparent",borderTopWidth:1,borderTopColor:Ke.color.border},goButton:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,backgroundColor:Ke.color.accent,paddingVertical:12,borderRadius:8},goButtonText:{fontSize:13,fontWeight:"600",color:Ke.color.onAccent,fontFamily:Kr,textTransform:"uppercase",letterSpacing:.5}});import{Filter as Ot,DynamicFilterView as qr}from"@buoy-gg/shared-ui/web";import{jsx as Zr}from"react/jsx-runtime";function Xr({ignoredPatterns:e,onTogglePattern:t,onAddPattern:o,availablePathnames:r=[]}){return Zr(qr,{...{addFilterSection:{enabled:true,placeholder:"Enter pattern (e.g., /_sitemap)",title:"ACTIVE FILTERS",icon:Ot},availableItemsSection:{enabled:true,title:"AVAILABLE ROUTES FROM EVENTS",emptyMessage:"No routes available. Routes from navigation events will appear here.",items:r},howItWorksSection:{enabled:true,title:"HOW FILTERS WORK",description:"Filtered routes will not appear in the route events list. Patterns match if the route contains the specified text.",examples:["\u2022 /_sitemap \u2192 filters /_sitemap routes","\u2022 /api \u2192 filters /api/users, /api/posts","\u2022 [id] \u2192 filters all routes with [id] param"],icon:Ot},onPatternToggle:t,onPatternAdd:o,activePatterns:e}})}import{useState as Be,useCallback as Ne,useMemo as _e,useEffect as Yr}from"react";import{night as y,ToolEmptyState as ea,monoFont as U}from"@buoy-gg/shared-ui/web";import{useSafeRouter as ta}from"@buoy-gg/shared-ui/web";import{Search as Vt,ChevronDown as Ht,ChevronRight as Mt,Home as oa,InlineCopyButton as ra,CopyButton as aa,RefreshCw as na,formatRelativeTime as ia,ProUpgradeModal as sa}from"@buoy-gg/shared-ui/web";import{useIsPro as la}from"@buoy-gg/license/web";import{useState as ca,useEffect as Ut,useMemo as Se,useCallback as ua}from"react";var ge=class{static parseRouteTree(e){if(!e)return[];let t=[];return this.traverseNode(e,"",t,0),t}static traverseNode(e,t,o,r){let a=this.buildPath(e,t),n=this.detectRouteType(e),i=this.shouldIncludeRoute(e),u={path:a,name:e.route,type:n,params:this.extractParams(e),nodeType:e.type,contextKey:e.contextKey,isInternal:e.internal??false,children:[],depth:r};i&&o.push(u);for(let c of e.children)this.traverseNode(c,a,i?u.children:o,r+1)}static buildPath(e,t){if(e.type==="layout"&&e.route==="_layout"||e.route.startsWith("(")&&e.route.endsWith(")"))return t;if(e.route==="index")return t||"/";let o=e.route;return!t||t==="/"?`/${o}`:`${t}/${o}`}static detectRouteType(e){let t=e.route;return e.dynamic?.some(o=>o.notFound)?"not-found":e.dynamic?.some(o=>o.deep)?"catch-all":e.dynamic&&e.dynamic.length>0?"dynamic":e.type==="layout"?"layout":t.startsWith("(")&&t.endsWith(")")?"group":t==="index"?"index":"static"}static extractParams(e){return!e.dynamic||e.dynamic.length===0?[]:e.dynamic.map(t=>t.name)}static shouldIncludeRoute(e){return!(e.internal||e.generated||e.type==="api")}static organizeRoutes(e){let t=[],o=this.flattenRoutes(e).filter(i=>i.type==="static"||i.type==="index"),r=this.flattenRoutes(e).filter(i=>i.type==="dynamic"||i.type==="catch-all"),a=this.flattenRoutes(e).filter(i=>i.type==="layout"),n=this.flattenRoutes(e).filter(i=>i.type==="group");return o.length>0&&t.push({title:"Static Routes",icon:"",routes:o}),r.length>0&&t.push({title:"Dynamic Routes",icon:"",description:"Routes that accept parameters",routes:r}),a.length>0&&t.push({title:"Layouts",icon:"",description:"Shared UI for nested screens",routes:a}),n.length>0&&t.push({title:"Route Groups",icon:"",routes:n}),t}static flattenRoutes(e){let t=[];function o(r){t.push(r),r.children.forEach(o)}return e.forEach(o),t}static getRouteStats(e){let t=this.flattenRoutes(e);return{total:t.length,static:t.filter(o=>o.type==="static").length,dynamic:t.filter(o=>o.type==="dynamic").length,catchAll:t.filter(o=>o.type==="catch-all").length,layouts:t.filter(o=>o.type==="layout").length,groups:t.filter(o=>o.type==="group").length}}static filterRoutes(e,t){if(!t)return e;let o=t.toLowerCase();return this.flattenRoutes(e).filter(r=>r.path.toLowerCase().includes(o)||r.name.toLowerCase().includes(o)||r.type.toLowerCase().includes(o)||r.params.some(a=>a.toLowerCase().includes(o)))}static buildTreeString(e,t=0){let o="";return e.forEach((r,a)=>{let n=a===e.length-1,i=`${this.buildTreePrefix(t,n)}${r.path}`;r.params.length>0&&(i+=` { ${r.params.join(", ")} }`),o+=i+`
|
|
2
|
+
`,r.children.length>0&&(o+=this.buildTreeString(r.children,t+1))}),o}static buildTreePrefix(e,t){return e===0?"":" ".repeat(e-1)+(t?"\u2514\u2500 ":"\u251C\u2500 ")}static sortRoutes(e,t="path"){let o=[...e];return o.sort((r,a)=>{switch(t){case"path":return r.path.localeCompare(a.path);case"type":return r.type.localeCompare(a.type);case"name":return r.name.localeCompare(a.name);default:return 0}}),o}static findRouteByPath(e,t){return this.flattenRoutes(e).find(o=>o.path===t)||null}static getParentRoutes(e,t){let o=[],r=this.flattenRoutes(e);if(!r.find(i=>i.path===t))return o;let a=t.split("/").filter(Boolean),n="";for(let i=0;i<a.length-1;i++){n+="/"+a[i];let u=r.find(c=>c.path===n);u&&o.push(u)}return o}};import{getBrowserHref as da}from"@buoy-gg/shared-ui/web/utils";var De=new Map,ut=null;function pa(e){for(let o of e)De.set(o,(De.get(o)??0)+1);ut=Date.now();let t=true;return()=>{if(t){t=false;for(let o of e){let r=(De.get(o)??1)-1;r?De.set(o,r):De.delete(o)}ut=Date.now()}}}function ma(){return[...De.keys()]}function ha(){return ut}function dt(){return typeof window<"u"}function We(){return dt()?{route:"",type:"layout",contextKey:"browser",children:[...new Set([...ma(),new URL(da()).pathname])].map(e=>({route:e.replace(/^\//,"")||"index",type:"route",contextKey:e,children:[],dynamic:null}))}:null}function pt(){return{source:null,lastLoadedAt:ha()}}function Je(e={}){let{searchQuery:t="",sortBy:o="path",autoRefresh:r=false,refreshInterval:a=1e3,injectedRoutes:n,injectedSource:i=null,injectedLastUpdatedAt:u=null}=e,c=n!=null,[h,I]=ca(()=>{let R=We(),V=pt();return{node:R,version:0,lastUpdatedAt:V.lastLoadedAt,source:V.source}}),v=h.node,T=h.version,$=h.lastUpdatedAt,ae=h.source,O=ua(()=>{I(R=>{let V=We(),K=pt();return{node:V,version:R.version+1,lastUpdatedAt:K.lastLoadedAt,source:K.source}})},[]);Ut(()=>{if(v||c||!dt())return;let R=0,V=100,K=()=>{R++,O(),R<V&&(z=setTimeout(K,100))},z=setTimeout(K,100);return()=>clearTimeout(z)},[v,O,c]),Ut(()=>{if(!r)return;let R=setInterval(O,a);return()=>clearInterval(R)},[r,a,O]);let N=c?n.length>0:!!v,P=c?true:dt(),D=Se(()=>c?n:v?ge.parseRouteTree(v):[],[v,T,c,n]),ee=Se(()=>ge.sortRoutes(D,o),[D,o]),k=Se(()=>t?ge.filterRoutes(ee,t):ee,[ee,t]),G=Se(()=>ge.organizeRoutes(k),[k]),pe=Se(()=>ge.getRouteStats(D),[D]);return{routes:ee,groups:G,stats:pe,filteredRoutes:k,isLoaded:N,isSupported:P,refresh:O,findRoute:R=>ge.findRouteByPath(D,R),getParents:R=>ge.getParentRoutes(D,R),lastUpdatedAt:c?u:$,source:c?i:ae}}function ga(e){let{findRoute:t}=Je();return Se(()=>t(e),[t,e])}function ya(e){let{getParents:t}=Je();return Se(()=>t(e),[t,e])}function mt(e){return String(e).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"root"}function fa(e,t){return`buoy-routes-event-row-${mt(e)}-${t}`}function ba(e){return`buoy-routes-route-${mt(e)}`}function Gt(e){return`buoy-routes-group-${mt(e)}`}function va(e){return`buoy-routes-stack-item-${e}`}import{jsx as d,jsxs as L}from"react/jsx-runtime";var Z=Et.OS==="web",Qe=Z?22:16,xa={path:"/",name:"index",type:"index",params:[],nodeType:"route",contextKey:"/",isInternal:false,children:[],depth:0};function ht({style:e,injectedRoutes:t,injectedSource:o,injectedLastUpdatedAt:r,onNavigateRoute:a}){let[n,i]=Be(""),[u,c]=Be(false),[h,I]=Be(new Set(["Static Routes","Dynamic Routes"])),[v,T]=Be(false),[$,ae]=Be(false),O=la();Yr(()=>{$&&O&&ae(false)},[$,O]);let N=ta(),{groups:P,stats:D,isLoaded:ee,isSupported:k,filteredRoutes:G,routes:pe,refresh:R,lastUpdatedAt:V,source:K}=Je({searchQuery:n,sortBy:"path",injectedRoutes:t,injectedSource:o,injectedLastUpdatedAt:r}),z=_e(()=>({summary:{total:D.total,static:D.static,dynamic:D.dynamic,layouts:D.layouts,groups:D.groups,timestamp:new Date().toISOString()},groups:P.map(b=>({title:b.title,description:b.description,count:b.routes.length,routes:b.routes.map(w=>({path:w.path,name:w.name,type:w.type,params:w.params,depth:w.depth,hasChildren:w.children.length>0,childrenCount:w.children.length}))})),allRoutes:pe.map(b=>b.path)}),[P,D,pe]),Ce=Ne(b=>{I(w=>{let X=new Set(w);return X.has(b)?X.delete(b):X.add(b),X})},[]),ye=Ne((b,w=0,X={})=>{let Pe=b.params;if(w>=Pe.length){let ne=b.path;Object.entries(X).forEach(([fe,He])=>{b.type==="catch-all"?ne=ne.replace(`[...${fe}]`,He):ne=ne.replace(`[${fe}]`,He)});try{N.push(ne)}catch(fe){_.alert("Navigation Error",String(fe))}return}let Le=Pe[w],et=b.type==="catch-all"?`[...${Le}]`:`[${Le}]`;_.prompt("Enter Parameter Value",`Enter value for ${et}:
|
|
3
|
+
|
|
4
|
+
Route: ${b.path}`,[{text:"Cancel",style:"cancel"},{text:w<Pe.length-1?"Next":"Navigate",onPress:ne=>{if(ne&&ne.trim()){let fe={...X,[Le]:ne.trim()};ye(b,w+1,fe)}else _.alert("Invalid Value","Please enter a value for the parameter")}}],"plain-text")},[N]),xe=Ne((b,w)=>{if(a){a(b);return}if(!O&&!w?.bypassPro){ae(true);return}if(b.type==="layout"||b.type==="group"){_.alert("Cannot Navigate",`${b.type==="layout"?"Layouts":"Route groups"} are not navigable routes`);return}if(b.type==="dynamic"||b.type==="catch-all"){if(b.params.length===0){try{N.push(b.path)}catch(X){_.alert("Navigation Error",String(X))}return}ye(b);return}try{N.push(b.path)}catch(X){_.alert("Navigation Error",String(X))}},[N,ye,O,a]),le=Ne(()=>{xe(xa,{bypassPro:true})},[xe]),f=Ne(()=>{v||(T(true),R(),setTimeout(()=>T(false),400))},[v,R]),E=_e(()=>V?`Updated ${ia(V)}`:"Awaiting route data",[V]),H=_e(()=>K?`Source: ${K}`:"Source: unknown",[K]),ce=_e(()=>n&&G.length>0?[{title:"Search Results",icon:"",routes:G}]:P,[n,G,P]);return ee?L(l,{style:[s.container,e],children:[u&&L(l,{style:s.searchContainer,testID:"buoy-routes-sitemap-search-field",children:[d(Vt,{size:16,color:y.color.textTertiary}),d(Lt,{style:s.searchInput,placeholder:"Search routes...",placeholderTextColor:y.color.placeholder,value:n,onChangeText:i,autoCapitalize:"none",autoCorrect:false,autoFocus:true,testID:"buoy-routes-sitemap-search",accessibilityLabel:"Search routes"}),n.length>0&&d(W,{onPress:()=>i(""),style:s.clearButton,testID:"buoy-routes-sitemap-search-clear",accessibilityRole:"button",accessibilityLabel:"Clear route search",children:d(p,{style:s.clearButtonText,children:"\u2715"})}),d(W,{style:s.closeSearchButton,onPress:()=>{c(false),i("")},testID:"buoy-routes-sitemap-search-done",accessibilityRole:"button",accessibilityLabel:"Done searching routes",children:d(p,{style:s.closeSearchText,children:"Done"})})]}),L(Ue,{testID:"buoy-routes-sitemap-scroll",style:s.scrollView,contentContainerStyle:s.scrollContent,children:[!u&&L(l,{style:s.header,children:[L(l,{style:s.actionsRow,children:[L(l,{style:[s.actionWrapper,Z&&s.actionWrapperDesktop],children:[d(W,{style:[s.iconButton,Z&&s.iconButtonDesktop],onPress:le,accessibilityLabel:"Go to home route",accessibilityRole:"button",testID:"buoy-routes-sitemap-home",children:d(oa,{size:Qe,color:y.color.textSecondary})}),d(p,{style:[s.actionLabel,Z&&s.actionLabelDesktop],children:"Home"})]}),L(l,{style:[s.actionWrapper,Z&&s.actionWrapperDesktop],children:[d(aa,{value:z,testID:"buoy-routes-sitemap-copy",size:Z?Qe:14,buttonStyle:Z?s.actionButtonHeaderDesktop:s.actionButtonHeader}),d(p,{style:[s.actionLabel,Z&&s.actionLabelDesktop],children:"Copy"})]}),L(l,{style:[s.actionWrapper,Z&&s.actionWrapperDesktop],children:[d(W,{style:[s.iconButton,Z&&s.iconButtonDesktop,v&&s.refreshButtonDisabled],onPress:f,disabled:v,testID:"buoy-routes-sitemap-refresh",accessibilityRole:"button",accessibilityLabel:"Refresh route tree",children:d(na,{size:Qe,color:v?y.color.textTertiary:y.color.textSecondary})}),d(p,{style:[s.actionLabel,Z&&s.actionLabelDesktop],children:"Refresh"})]}),L(l,{style:[s.actionWrapper,Z&&s.actionWrapperDesktop],children:[d(W,{style:[s.iconButton,Z&&s.iconButtonDesktop],onPress:()=>c(true),testID:"buoy-routes-sitemap-search-open",accessibilityRole:"button",accessibilityLabel:"Search routes",children:d(Vt,{size:Qe,color:y.color.textSecondary})}),d(p,{style:[s.actionLabel,Z&&s.actionLabelDesktop],children:"Search"})]})]}),L(l,{style:s.statsGrid,children:[d(Ee,{value:D.total,label:"Total",id:"total"}),d(Ee,{value:D.static,label:"Static",id:"static"}),d(Ee,{value:D.dynamic,label:"Dynamic",id:"dynamic"}),d(Ee,{value:D.catchAll,label:"Catch-All",id:"catch-all"}),d(Ee,{value:D.layouts,label:"Layouts",id:"layouts"}),d(Ee,{value:D.groups,label:"Groups",id:"groups"})]})]}),ce.length===0?d(ea,{testID:"buoy-routes-sitemap-empty",otto:"map",title:"No routes found",message:"Nothing in the router matches. Clear the search to see the whole tree."}):ce.map(b=>d(Sa,{group:b,isExpanded:n.length>0||h.has(b.title),onToggleExpand:()=>Ce(b.title),onNavigate:xe},b.title)),L(l,{style:s.metaFooter,children:[d(p,{style:s.metaText,testID:"buoy-routes-sitemap-updated",children:E}),d(l,{style:s.sourceBadge,children:d(p,{style:s.sourceText,testID:"buoy-routes-sitemap-source",children:H})})]})]}),d(sa,{visible:$,onClose:()=>ae(false),featureName:"Route Navigation"})]}):d(l,{style:[s.container,e],children:d(l,{style:s.loadingContainer,children:d(p,{style:s.loadingText,testID:"buoy-routes-sitemap-loading",children:k?"Loading routes...":"Route sitemap isn't available on the dashboard \u2014 the route tree lives on the device. Use the Events tab to see navigation here."})})})}function Ee({value:e,label:t,id:o}){return L(l,{style:s.statItem,testID:`buoy-routes-stat-${o}`,accessibilityLabel:`${t}, ${e}`,children:[d(p,{style:s.statValue,testID:`buoy-routes-stat-${o}-value`,children:e}),d(p,{style:s.statLabel,children:t})]})}function Sa({group:e,isExpanded:t,onToggleExpand:o,onNavigate:r}){return L(l,{style:s.groupContainer,children:[L(W,{style:s.groupHeader,onPress:o,activeOpacity:.7,testID:Gt(e.title),accessibilityRole:"button",accessibilityLabel:`${e.title}, ${e.routes.length} routes`,children:[L(l,{style:s.groupHeaderLeft,children:[t?d(Ht,{size:14,color:y.color.textSecondary}):d(Mt,{size:14,color:y.color.textSecondary}),d(p,{style:s.groupTitle,children:e.title})]}),d(l,{style:s.groupBadge,children:d(p,{style:s.groupCount,testID:`${Gt(e.title)}-count`,children:e.routes.length})})]}),e.description&&d(l,{style:s.groupDescription,children:d(p,{style:s.groupDescriptionText,children:e.description})}),t&&d(l,{style:s.routesList,children:e.routes.map((a,n)=>d(Kt,{route:a,onNavigate:r},`${a.path}-${n}`))})]})}function Kt({route:e,depth:t=0,onNavigate:o}){let[r,a]=Be(false),n=e.children.length>0,i=Ca(e.type),u=e.type!=="layout"&&e.type!=="group",c=ba(e.path),h=n,I=h?r:true;return d(l,{style:[s.routeItem,{marginLeft:t*12}],testID:c,children:L(l,{style:s.routeCard,children:[L(l,{style:s.routeHeader,children:[h?L(W,{style:s.routeHeaderLeft,onPress:()=>a(!r),activeOpacity:.7,testID:`${c}-toggle`,accessibilityRole:"button",accessibilityLabel:`${e.path}, ${e.type}, ${e.children.length} nested`,children:[d(l,{style:s.expandIndicator,children:r?d(Ht,{size:14,color:y.color.textSecondary}):d(Mt,{size:14,color:y.color.textSecondary})}),d(p,{style:s.routePath,numberOfLines:3,testID:`${c}-path`,children:e.path})]}):L(l,{style:s.routeHeaderLeft,accessible:true,accessibilityLabel:`${e.path}, ${e.type}`,children:[d(l,{style:s.expandIndicator}),d(p,{style:s.routePath,numberOfLines:3,testID:`${c}-path`,children:e.path})]}),L(l,{style:s.routeHeaderActions,children:[n&&d(l,{style:s.childCountBadge,children:d(p,{style:s.childCountText,testID:`${c}-children-count`,children:e.children.length})}),d(l,{style:[s.typeTag,{backgroundColor:`${i}15`,borderColor:`${i}40`}],children:d(p,{style:[s.typeText,{color:i}],testID:`${c}-type`,children:e.type.toUpperCase()})}),d(ra,{value:e.path,buttonStyle:s.iconAction,testID:`${c}-copy`}),u&&d(W,{style:s.goButton,onPress:()=>o(e),activeOpacity:.7,testID:`${c}-go`,accessibilityRole:"button",accessibilityLabel:`Go to ${e.path}`,children:d(p,{style:s.goButtonText,children:"Go"})})]})]}),I&&n&&d(l,{style:s.childrenContainer,children:e.children.map((v,T)=>d(Kt,{route:v,depth:t+1,onNavigate:o},`${v.path}-${T}`))})]})})}function Ca(e){switch(e){case"static":return"#3B82F6";case"dynamic":return"#F59E0B";case"catch-all":return"#EC4899";case"index":return"#10B981";case"layout":return"#8B5CF6";case"group":return"#6366F1";case"not-found":return"#EF4444";default:return"#6B7280"}}var s=ve.create({container:{flex:1,backgroundColor:"transparent"},loadingContainer:{flex:1,justifyContent:"center",alignItems:"center"},loadingText:{color:y.color.textSecondary,fontSize:14,fontFamily:U,textAlign:"center",lineHeight:20,paddingHorizontal:32,maxWidth:420},header:{flexDirection:"column",padding:8,borderBottomWidth:1,borderBottomColor:y.color.border,gap:12,marginBottom:8},actionsRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:12,paddingBottom:4},statsGrid:{flexDirection:"row",flexWrap:"wrap",gap:8},statItem:{flexGrow:1,flexShrink:1,flexBasis:"30%",minWidth:90,backgroundColor:y.color.surface,borderRadius:8,paddingVertical:10,paddingHorizontal:12,alignItems:"center"},statValue:{fontSize:18,fontWeight:"800",color:y.color.text,fontFamily:U},statLabel:{fontSize:10,color:y.color.textTertiary,marginTop:4,fontFamily:U,textTransform:"uppercase",letterSpacing:.5},actionWrapper:{flex:1,alignItems:"center",justifyContent:"center",gap:4,minWidth:48},actionWrapperDesktop:{gap:8,minWidth:72},actionButtonHeader:{padding:6,borderRadius:4,backgroundColor:y.color.surfaceElevated},actionButtonHeaderDesktop:{padding:12,borderRadius:8,backgroundColor:y.color.surfaceElevated},iconButton:{padding:6,borderRadius:4,alignItems:"center",justifyContent:"center"},iconButtonDesktop:{padding:12,borderRadius:8,backgroundColor:y.color.surfaceElevated},actionLabel:{fontSize:8,color:y.color.textTertiary,fontFamily:U,textTransform:"uppercase",letterSpacing:.5},actionLabelDesktop:{fontSize:12},refreshButtonDisabled:{opacity:.5},metaFooter:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:8,paddingHorizontal:16,paddingVertical:16,marginTop:16,borderTopWidth:1,borderTopColor:y.color.border},metaText:{fontSize:12,color:y.color.textSecondary,fontFamily:U},sourceBadge:{paddingHorizontal:8,paddingVertical:2,borderRadius:999,borderWidth:1,borderColor:y.color.border,backgroundColor:y.color.surface},sourceText:{fontSize:11,color:y.color.textSecondary,textTransform:"capitalize",fontFamily:U},searchContainer:{flexDirection:"row",alignItems:"center",padding:8,gap:8,borderBottomWidth:1,borderBottomColor:y.color.border},searchInput:{flex:1,color:y.color.text,fontSize:14,fontFamily:U},clearButton:{padding:4},clearButtonText:{color:y.color.textTertiary,fontSize:18},closeSearchButton:{paddingHorizontal:8,paddingVertical:4},closeSearchText:{color:y.color.accent,fontSize:14,fontWeight:"600",fontFamily:U},scrollView:{flex:1},scrollContent:{paddingBottom:8},emptyState:{padding:32,alignItems:"center"},emptyText:{color:y.color.textSecondary,fontSize:14,fontFamily:U},groupContainer:{marginVertical:4},groupHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",padding:12,paddingHorizontal:16,backgroundColor:y.color.surface,borderLeftWidth:3,borderLeftColor:y.color.fillTertiary},groupHeaderLeft:{flexDirection:"row",alignItems:"center",gap:8,flex:1},groupTitle:{fontSize:12,fontWeight:"700",color:y.color.text,fontFamily:U,textTransform:"uppercase",letterSpacing:.8},groupBadge:{backgroundColor:"#3B82F615",borderColor:"#3B82F640",borderWidth:1,borderRadius:12,paddingHorizontal:8,paddingVertical:3,minWidth:24,alignItems:"center",justifyContent:"center"},groupCount:{fontSize:11,fontWeight:"600",color:"#3B82F6",fontFamily:U},routesList:{backgroundColor:"transparent"},groupDescription:{paddingHorizontal:16,paddingVertical:8,marginBottom:8,backgroundColor:y.color.surfaceElevated,borderLeftWidth:3,borderLeftColor:y.color.fillTertiary},groupDescriptionText:{fontSize:11,color:y.color.textSecondary,fontFamily:U,lineHeight:16},routeItem:{marginBottom:6},routeCard:{backgroundColor:y.color.surface,borderRadius:6,borderWidth:1,borderColor:y.color.border,overflow:"hidden",shadowColor:"#000",shadowOffset:{width:0,height:1},shadowOpacity:.05,shadowRadius:2,elevation:1},routeHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:7,paddingHorizontal:10,gap:8},expandIndicator:{width:18,alignItems:"center"},routeHeaderLeft:{flexDirection:"row",alignItems:"center",gap:8,flex:1},routePath:{fontSize:13,fontWeight:"600",color:y.color.text,fontFamily:U,flex:1},routeHeaderActions:{flexDirection:"row",alignItems:"center",gap:6},childCountBadge:{backgroundColor:"#6B728015",borderColor:"#6B728040",borderWidth:1,borderRadius:12,paddingHorizontal:7,paddingVertical:2,minWidth:22,alignItems:"center",justifyContent:"center"},childCountText:{fontSize:11,fontWeight:"600",color:y.color.textSecondary,fontFamily:U},typeTag:{borderRadius:4,paddingHorizontal:6,paddingVertical:2,borderWidth:1},typeText:{fontSize:10,fontWeight:"600",fontFamily:U},iconAction:{width:28,height:24,borderRadius:4,backgroundColor:y.color.surfaceElevated,borderWidth:1,borderColor:y.color.border,alignItems:"center",justifyContent:"center"},goButton:{height:24,paddingHorizontal:10,borderRadius:4,alignItems:"center",justifyContent:"center",backgroundColor:y.color.accentSoft,borderWidth:1,borderColor:y.color.accentBorder},goButtonText:{fontSize:12,color:y.color.accent,fontFamily:U,fontWeight:"600"},childrenContainer:{borderLeftWidth:2,borderLeftColor:y.color.border,marginLeft:16,marginRight:8,marginTop:2,marginBottom:8}});import{useState as _t,useMemo as qe,useEffect as Jt}from"react";import{ChevronDown as Ta,ChevronRight as Ra,InlineCopyButton as wa,ProUpgradeModal as Ia,buoyColors as Ze,night as j,useSafeAreaInsets as ka,ToolEmptyState as Ba,monoFont as se}from"@buoy-gg/shared-ui/web";import{useIsPro as Da}from"@buoy-gg/license/web";import{DataViewer as Ea}from"@buoy-gg/shared-ui/web/dataViewer";import{useSyncExternalStore as Pa}from"react";var La=class{constructor(){this.stack=[];this.actions=null;this.listeners=new Set}getStack(){return this.stack}setStack(e){this.stack=e,this.listeners.forEach(t=>t())}getActions(){return this.actions}setActions(e){this.actions=e}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}},Q=new La;var $a=[];function Qt(){let e=Pa(r=>Q.subscribe(r),()=>Q.getStack(),()=>$a),t=e.find(r=>r.isFocused)??null,o=()=>{let r=Q.getActions();if(!r)throw new Error("Mount RouteTracker to capture browser navigation.");return r};return{stack:e,focusedRoute:t,stackDepth:e.length,isAtRoot:!t||t.index===0,isLoaded:e.length>0,error:null,refresh:()=>{},navigateToIndex:r=>o().navigateToIndex(r),navigateToRoute:(r,a)=>o().navigateToRoute?.(r,a)??false,popToIndex:r=>o().popToIndex(r),goBack:()=>o().goBack(),popToTop:()=>o().popToTop()}}import{jsx as C,jsxs as oe}from"react/jsx-runtime";function qt({style:e,injectedStack:t,onAction:o,onCopyValueChange:r}){let a=Qt(),n=t!=null,i=ka({minBottom:8}),u=n?t:a.stack,c=n?true:a.isLoaded,h=n?null:a.error,I=qe(()=>u.find(f=>f.isFocused)??null,[u]),v=u.length,T=v<=1,$=f=>o?o("navigateToIndex",{index:f}):a.navigateToIndex(f),ae=f=>o?o("popToIndex",{index:f}):a.popToIndex(f),O=()=>o?o("goBack"):a.goBack(),N=()=>o?o("popToTop"):a.popToTop(),[P,D]=_t(null),[ee,k]=_t(false),G=Da();Jt(()=>{ee&&G&&k(false)},[ee,G]);let pe=qe(()=>{let f=u.map(E=>({pathname:E.pathname,name:E.name,params:E.params,isFocused:E.isFocused}));return JSON.stringify(f,null,2)},[u]);Jt(()=>{r?.(pe)},[pe,r]);let R=qe(()=>P!==null&&u[P]?u[P]:I,[P,u,I]),V=qe(()=>P!==null&&u[P]&&!u[P].isFocused,[P,u]);if(!c)return C(l,{style:[m.container,e],children:C(l,{style:m.loadingContainer,children:C(p,{style:m.loadingText,testID:"buoy-routes-stack-loading",children:"Loading navigation stack..."})})});if(h)return C(l,{style:[m.container,e],children:oe(l,{style:m.errorContainer,testID:"buoy-routes-stack-error",children:[C(p,{style:m.errorText,children:"Error loading stack"}),C(p,{style:m.errorDetail,testID:"buoy-routes-stack-error-detail",children:h.message})]})});if(u.length===0)return C(l,{style:[m.container,e],children:C(Ba,{testID:"buoy-routes-stack-empty",otto:"walking",title:"No navigation stack",message:"Navigate to a route to see the stack"})});let K=(f,E,H,ce)=>{if(o){let b=globalThis.window?.confirm;(!b||b(`${f}
|
|
5
|
+
|
|
6
|
+
${E}`))&&ce();return}_.alert(f,E,[{text:"Cancel",style:"cancel"},{text:H,style:"destructive",onPress:ce}])},z=()=>{if(!G){k(true);return}if(T){_.alert("Cannot Go Back","Already at the root of the stack");return}O()},Ce=()=>{if(!G){k(true);return}if(T){_.alert("Already at Top","Stack only has one screen");return}K("Pop to Top","This will remove all screens except the root screen.","Pop to Top",N)},ye=f=>{D(P===f?null:f)},xe=()=>{if(!G){k(true);return}if(R){if(R.isFocused){_.alert("Already There","This route is already visible");return}$(R.index)}},le=()=>{if(!G){k(true);return}if(!R)return;if(R.isFocused){_.alert("Cannot Pop","Selected route is already visible");return}if(R.index===v-1){_.alert("Cannot Pop","No screens above selected route");return}let f=v-1-R.index,E=R.index;K("Pop to Route",`Remove ${f} screen${f!==1?"s":""} above ${R.pathname}?`,"Pop",()=>ae(E))};return oe(l,{style:[m.container,e],children:[C(Ue,{testID:"buoy-routes-stack-scroll",style:m.stackScroll,contentContainerStyle:[m.stackContent,{paddingBottom:m.stackContent.padding+i.bottom}],children:[...u].reverse().map((f,E)=>{let H=u.length-1-E,ce=P===H,b=Object.keys(f.params).length>0,w=va(H);return C(l,{style:m.stackItemWrapper,testID:w,children:oe(l,{style:[m.stackItem,ce&&m.stackItemSelected],children:[oe(W,{style:m.stackItemHeader,onPress:()=>ye(H),activeOpacity:.7,testID:`${w}-toggle`,accessibilityRole:"button",accessibilityLabel:`${f.pathname}, ${f.isFocused?"focused":"mounted"}, position ${H} of ${v-1}`,children:[C(l,{style:m.expandIndicator,children:ce?C(Ta,{size:14,color:j.color.textSecondary}):C(Ra,{size:14,color:j.color.textSecondary})}),C(p,{style:m.stackItemPath,numberOfLines:1,testID:`${w}-path`,children:f.pathname}),C(wa,{value:f.pathname,buttonStyle:m.copyRouteButton,testID:`${w}-copy`}),C(l,{style:[m.statusBadge,{backgroundColor:f.isFocused?`${Ze.success}15`:"#3B82F615",borderColor:f.isFocused?`${Ze.success}40`:"#3B82F640"}],children:C(p,{style:[m.statusBadgeText,{color:f.isFocused?Ze.success:"#3B82F6"}],testID:`${w}-status`,children:f.isFocused?"FOCUSED":"MOUNTED"})})]}),ce&&oe(l,{style:m.expandedContent,children:[oe(l,{style:m.detailRow,children:[C(p,{style:m.detailLabel,children:"Route Name:"}),C(p,{style:m.detailValue,testID:`${w}-name`,children:f.name})]}),oe(l,{style:m.detailRow,children:[C(p,{style:m.detailLabel,children:"Position:"}),oe(p,{style:m.detailValue,testID:`${w}-position`,children:[H," / ",v-1]})]}),b&&C(l,{style:m.dataViewerContainer,children:C(Ea,{title:"Parameters",data:f.params,showTypeFilter:false})}),oe(l,{style:m.actionsRow,children:[oe(l,{style:m.actionWrapper,children:[C(W,{style:[m.actionButton,T&&m.actionButtonDisabled],onPress:z,disabled:T,testID:`${w}-back`,accessibilityRole:"button",accessibilityLabel:"Go back one screen",children:C(p,{style:[m.actionButtonText,T&&m.actionButtonTextDisabled],children:"Back"})}),C(p,{style:m.helpText,children:"Go back one screen"})]}),oe(l,{style:m.actionWrapper,children:[C(W,{style:[m.actionButton,f.isFocused&&m.actionButtonDisabled],onPress:xe,disabled:f.isFocused,testID:`${w}-go`,accessibilityRole:"button",accessibilityLabel:`Navigate to ${f.pathname}`,children:C(p,{style:[m.actionButtonText,f.isFocused&&m.actionButtonTextDisabled],children:"Go"})}),C(p,{style:m.helpText,children:"Navigate to this route"})]}),oe(l,{style:m.actionWrapper,children:[C(W,{style:[m.actionButton,(f.isFocused||H===v-1)&&m.actionButtonDisabled],onPress:le,disabled:f.isFocused||H===v-1,testID:`${w}-pop-to`,accessibilityRole:"button",accessibilityLabel:`Remove screens above ${f.pathname}`,children:C(p,{style:[m.actionButtonText,(f.isFocused||H===v-1)&&m.actionButtonTextDisabled],children:"Pop To"})}),C(p,{style:m.helpText,children:"Remove screens above this"})]})]})]})]})},`stack-${H}-${f.key}`)})}),C(Ia,{visible:ee,onClose:()=>k(false),featureName:"Stack Navigation"})]})}var m=ve.create({container:{flex:1,backgroundColor:"transparent"},loadingContainer:{flex:1,justifyContent:"center",alignItems:"center",padding:32},loadingText:{color:j.color.textSecondary,fontSize:14,fontFamily:se},errorContainer:{flex:1,justifyContent:"center",alignItems:"center",padding:32},errorText:{color:Ze.error,fontSize:16,fontWeight:"600",fontFamily:se,marginBottom:8},errorDetail:{color:j.color.textSecondary,fontSize:12,fontFamily:se,textAlign:"center"},emptyContainer:{flex:1,justifyContent:"center",alignItems:"center",padding:32},emptyText:{color:j.color.text,fontSize:16,fontWeight:"600",fontFamily:se,marginBottom:8},emptySubtext:{color:j.color.textSecondary,fontSize:14,fontFamily:se,textAlign:"center"},stackScroll:{flex:1},stackContent:{padding:8},stackItemWrapper:{marginBottom:6},stackItem:{backgroundColor:j.color.surface,borderRadius:6,borderWidth:1,borderColor:j.color.border,overflow:"hidden"},stackItemSelected:{borderColor:j.color.accent,borderWidth:2},stackItemHeader:{flexDirection:"row",alignItems:"center",paddingVertical:10,paddingHorizontal:12,gap:8},expandIndicator:{width:20,alignItems:"center"},stackItemPath:{fontSize:13,fontWeight:"600",color:j.color.text,fontFamily:se,flex:1},copyRouteButton:{padding:4,marginLeft:4},statusBadge:{borderRadius:4,paddingHorizontal:6,paddingVertical:2,borderWidth:1},statusBadgeText:{fontSize:10,fontWeight:"600",fontFamily:se},expandedContent:{paddingHorizontal:12,paddingTop:8,paddingBottom:12,borderTopWidth:1,borderTopColor:j.color.border},detailRow:{marginBottom:8},detailLabel:{fontSize:10,color:j.color.textSecondary,fontFamily:se,marginBottom:2},detailValue:{fontSize:12,color:j.color.text,fontFamily:se},dataViewerContainer:{marginTop:4,marginHorizontal:-12,marginBottom:8},actionsRow:{flexDirection:"row",gap:6,marginTop:12},actionWrapper:{flex:1},actionButton:{backgroundColor:j.color.surfaceElevated,paddingVertical:8,paddingHorizontal:8,borderRadius:6,alignItems:"center"},actionButtonDisabled:{opacity:.5},actionButtonText:{fontSize:12,fontWeight:"600",color:j.color.text,fontFamily:se},actionButtonTextDisabled:{color:j.color.textTertiary},helpText:{fontSize:9,color:j.color.textSecondary,fontFamily:se,textAlign:"center",marginTop:4,lineHeight:12}});import{useCallback as Fa}from"react";import{Navigation as za,night as gt,EVENT_LIST_PRESET as Aa,monoFont as Zt}from"@buoy-gg/shared-ui/web";import{memo as Na,useMemo as de}from"react";import{CompactRow as Wa,RelativeTime as ja,buoyColors as Xt,night as Xe,monoFont as Yt}from"@buoy-gg/shared-ui/web";import{jsx as je}from"react/jsx-runtime";function Oa(e){return e.pathname==="/"?"home":ct(e.pathname,e.segments)?"dynamic":e.params&&Object.keys(e.params).length>0?"with-params":"default"}function Va(e){switch(e){case"home":return Xt.success;case"dynamic":return Xe.color.accent;case"with-params":return Xt.warning;default:return Xe.color.textSecondary}}function Ha(e){switch(e){case"home":return"Home";case"dynamic":return"Dynamic";case"with-params":return"Params";default:return"Static"}}function Ma(e){if(e<1e3)return`${Math.round(e)}ms`;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;let t=Math.floor(e/6e4),o=Math.floor(e%6e4/1e3);return o>0?`${t}m ${o}s`:`${t}m`}function Ua(e){let t=[];e.timeSincePrevious!==void 0&&e.timeSincePrevious>0&&t.push(Ma(e.timeSincePrevious));let o=e.segments?.length||0;return o>0&&t.push(`depth ${o}`),t.join(" \xB7 ")||"root"}function Ga(e){if(e.params&&Object.keys(e.params).length>0){let t=Object.keys(e.params).length;return`${t} PARAM${t!==1?"S":""}`}}var eo=Na(function({event:e,visitNumber:t,isExpanded:o,onPress:r,onNavigate:a,index:n}){let i=de(()=>Oa(e),[e]),u=de(()=>ct(e.pathname,e.segments),[e.pathname,e.segments]),c=de(()=>Va(i),[i]),h=de(()=>Ha(i),[i]),I=de(()=>Ua(e),[e]),v=de(()=>Ga(e),[e]),T=de(()=>fa(e.pathname,t),[e.pathname,t]),$=de(()=>`${e.pathname}, ${h}, ${I}`,[e.pathname,h,I]),ae=de(()=>{if(o)return je(lt,{event:e,visitNumber:t,routeTemplate:u})},[o,e,t,u]),O=de(()=>{if(a)return je(W,{style:to.goButton,onPress:()=>a(Nt(e.pathname,e.params)),testID:`${T}-go`,accessibilityRole:"button",accessibilityLabel:`Go to ${e.pathname}`,children:je(p,{style:to.goButtonText,children:"Go"})})},[a,e.pathname,T]);return je(Wa,{statusDotColor:c,statusLabel:h,statusSublabel:I,primaryText:e.pathname,badgeText:v,badgeColor:c,trailingAction:O,bottomRightText:je(ja,{timestamp:e.timestamp}),showChevron:true,expandedContent:ae,isExpanded:o,expandedGlowColor:c,onPress:()=>r(n),testID:T,statusTestID:`${T}-status`,statusSublabelTestID:`${T}-sublabel`,accessibilityLabel:$})}),to=ve.create({badgeText:{fontSize:11,fontWeight:"600",fontFamily:Yt},goButton:{backgroundColor:Xe.color.accent,paddingHorizontal:8,paddingVertical:4,borderRadius:4},goButtonText:{fontSize:10,fontWeight:"600",color:Xe.color.onAccent,fontFamily:Yt}});import{jsx as Oe,jsxs as Ka}from"react/jsx-runtime";function _a({events:e,visitCounts:t,onNavigate:o,onSelectEvent:r}){let a=Fa(n=>{let i=e[n];i&&r(i,t.get(i)||1)},[e,t,r]);return e.length===0?Ka(l,{style:Ye.emptyState,testID:"buoy-routes-empty",children:[Oe(za,{size:48,color:gt.color.textTertiary}),Oe(p,{style:Ye.emptyTitle,testID:"buoy-routes-empty-title",children:"No events yet"}),Oe(p,{style:Ye.emptySubtitle,testID:"buoy-routes-empty-subtitle",children:"Navigation events will appear here"})]}):Oe(Pt,{testID:"buoy-routes-timeline",contentContainerStyle:Ye.listContent,data:e,keyExtractor:n=>`${n.timestamp}-${n.pathname}`,renderItem:({item:n,index:i})=>Oe(eo,{event:n,visitNumber:t.get(n)||1,isExpanded:false,index:i,onPress:a,onNavigate:o}),showsVerticalScrollIndicator:true,...Aa})}var Ye=ve.create({listContent:{paddingVertical:8},emptyState:{flex:1,justifyContent:"center",alignItems:"center",padding:32},emptyTitle:{color:gt.color.text,fontSize:16,fontWeight:"600",marginTop:16,marginBottom:8,fontFamily:Zt,letterSpacing:.5,textTransform:"uppercase"},emptySubtitle:{color:gt.color.textSecondary,fontSize:14,textAlign:"center",fontFamily:Zt}});import{Fragment as Ja,jsx as S,jsxs as re}from"react/jsx-runtime";var yt=Tr(),Qa={parse:e=>e==="routes"||e==="events"||e==="stack"?e:void 0,serialize:e=>e},qa={parse:e=>e==="true",serialize:e=>e.toString()},Za={parse:e=>new Set(JSON.parse(e)),serialize:e=>JSON.stringify(Array.from(e))};function oo(e,t){if(!e||!e.routes)return null;for(let o of e.routes){if(o.name===t)return[o.name];if(o.state){let r=oo(o.state,t);if(r)return[o.name,...r]}}return null}function Xa(e,t){if(e.length===0)return null;let o=t&&Object.keys(t).length>0?t:void 0;if(e.length===1)return yt.navigate(o?{name:e[0],params:o}:{name:e[0]});let r=o?{screen:e[e.length-1],params:o}:{screen:e[e.length-1]};for(let a=e.length-2;a>=1;a--)r={screen:e[a],params:r};return yt.navigate({name:e[0],params:r})}function ft({visible:e,onClose:t,onBack:o,onMinimize:r,enableSharedModalDimensions:a=false,inline:n=false,remote:i}){let u=Rr(),c=void 0,h=wr(),[I,v]=at($e.routeEvents.activeTab(),"events",Qa),[T,$]=we(false),[ae,O]=we(""),N=jr(),P=Wr("routeEvents.entries");Bt(()=>{T&&N&&$(false)},[T,N]);let[D,ee]=at($e.routeEvents.isMonitoring(),true,qa),{events:k,clearEvents:G,isListening:pe}=At({enabled:D}),R=D&&pe;Bt(()=>{he.setBootCapture(D)},[D]);let[V,K]=we(false),[z,Ce]=we(null),[ye,xe]=we(1),[le,f]=we(""),[E,H]=at($e.routeEvents.eventFilters(),new Set(["/_sitemap","/api","/__dev"]),Za),ce=Ro(null),b=ue(g=>{},[]),w=ue(g=>{try{if(i){if(!i.onNavigatePath)return;if(!N&&g!=="/"){$(true);return}i.onNavigatePath(g);return}if(h)u.push(g);else if(c){let{pathname:B,params:q}=Qr(g),me=B.startsWith("/")?B.slice(1):B,Te=Object.keys(q).length>0,Re=c.getRootState?.();if(Re){let Me=oo(Re,me);if(Me){let wt=Xa(Me,q);if(wt){c.dispatch(wt);return}}}c.dispatch(yt.navigate(Te?{name:me,params:q}:{name:me}))}else _.alert("Navigation Unavailable","No Expo Router or React Navigation container was found in this app.")}catch(B){_.alert("Navigation Error",String(B))}},[u,c,h,i,N]),X=ue(()=>{ee(g=>!g)},[]),Pe=ue(()=>{if(k.length!==0){if(!N){$(true);return}G()}},[k.length,N,G]),Le=ue(g=>{H(B=>{let q=new Set(B);return q.has(g)?q.delete(g):q.add(g),q})},[]),et=ue(g=>{H(B=>new Set([...B,g]))},[]),ne=ue(()=>{K(!V)},[V]),fe=ue((g,B)=>{Ce(g),xe(B)},[]),He=ue(()=>{Ce(null)},[]),po=ue(g=>{Ce(null),v(g)},[]),mo=Ie(()=>{let g=new Set;return k.forEach(B=>{B.pathname&&g.add(B.pathname)}),Array.from(g).sort()},[k]),be=Ie(()=>k.filter(g=>{if(!g.pathname||Array.from(E).some(B=>g.pathname.includes(B)))return false;if(le.trim()){let B=le.toLowerCase(),q=g.pathname.toLowerCase().includes(B),me=Object.entries(g.params||{}).some(([Te,Re])=>{let Me=Array.isArray(Re)?Re.join(" "):Re;return Te.toLowerCase().includes(B)||Me.toLowerCase().includes(B)});return q||me}return true}),[k,E,le]),ho=Ie(()=>be.slice(0,P),[be,P]),tt=Ie(()=>Math.max(0,be.length-P),[be.length,P]),ot=Ie(()=>{let g=new Map,B=new Map;for(let q=k.length-1;q>=0;q--){let me=k[q],Te=(g.get(me.pathname)||0)+1;g.set(me.pathname,Te),B.set(me,Te)}return B},[k]),go=Ie(()=>({summary:{total:k.length,filtered:be.length,listening:R,ignoredPatterns:Array.from(E),timestamp:new Date().toISOString()},events:be.map((g,B)=>({index:B,visitNumber:ot.get(g)||1,pathname:g.pathname,timestamp:g.timestamp,timestampRelative:Pr(g.timestamp),params:g.params,segments:g.segments,previousPathname:g.previousPathname,timeSincePrevious:g.timeSincePrevious}))}),[k.length,be,R,E,ot]);if(!e)return null;let yo=a?$e.modal.root():$e.routeEvents.modal(),rt=null,Ct=()=>{if(z)return S(jt,{event:z,visitNumber:ye,onNavigate:w});if(I==="routes")return h||i?.sitemap?S(ht,{style:A.contentWrapper,injectedRoutes:i?.sitemap?.routes,injectedSource:i?.sitemap?.source??null,injectedLastUpdatedAt:i?.sitemap?.lastUpdatedAt??null,onNavigateRoute:i?fo:void 0}):S(ht,{style:A.contentWrapper});if(I==="stack")return S(qt,{style:A.contentWrapper,injectedStack:i?i.stack??[]:void 0,onAction:i?.onStackAction,onCopyValueChange:O});if(V)return S(Xr,{ignoredPatterns:E,onTogglePattern:Le,onAddPattern:et,availablePathnames:mo});let g=k.length>0;return be.length===0?re(l,{style:A.contentWrapper,testID:"buoy-routes-events",children:[g&&S(l,{style:A.searchContainer,testID:"buoy-routes-search-field",children:S($t,{value:le,onChange:f,placeholder:"Search pathname or params...",testID:"buoy-routes-search"})}),S(kr,{testID:"buoy-routes-empty",...Br({subject:"route events",search:le,total:k.length,capturing:R,waiting:{otto:"walking",title:"No route events yet",message:"Navigation events will appear here"},paused:{title:"Event listener is paused",message:"Press play to start monitoring"}})})]}):re(l,{style:A.contentWrapper,testID:"buoy-routes-events",children:[S(l,{style:A.searchContainer,testID:"buoy-routes-search-field",children:S($t,{value:le,onChange:f,placeholder:"Search pathname or params...",testID:"buoy-routes-search"})}),tt>0&&re(l,{style:A.lockedEventsBanner,testID:"buoy-routes-locked-banner",children:[S(Fr,{size:14,color:M.color.warning}),re(p,{style:A.lockedEventsBannerText,testID:"buoy-routes-locked-banner-text",children:[tt," older ",tt===1?"event":"events"," locked"]}),S(p,{style:A.lockedEventsBannerSubtext,children:"Upgrade to Pro for full history"})]}),S(_a,{events:ho,visitCounts:ot,onNavigate:w,onSelectEvent:fe})]})},Tt=z?re(ie,{children:[S(ie.Navigation,{onBack:He}),S(ie.Content,{title:z.pathname,testID:"buoy-routes-detail-title"}),S(ie.Actions,{children:S(nt,{testID:"buoy-routes-detail-copy",value:{pathname:z.pathname,previousPathname:z.previousPathname,params:z.params,segments:z.segments,timestamp:z.timestamp,timestampISO:new Date(z.timestamp).toISOString(),timeSincePrevious:z.timeSincePrevious,visitNumber:ye},buttonStyle:A.iconButton})})]}):V?re(ie,{children:[S(ie.Navigation,{onBack:()=>K(false)}),S(ie.Content,{title:"Filters",testID:"buoy-routes-filters-title"})]}):re(ie,{children:[o&&S(ie.Navigation,{onBack:o}),S(ie.Content,{title:"",noMargin:true,children:S(Er,{tabs:[{key:"routes",label:h?"Routes":"Screens"},{key:"events",label:`Events${k.length>0&&I!=="events"?` (${k.length})`:""}`},{key:"stack",label:"Stack"}],activeTab:I,onTabChange:g=>po(g),testIDPrefix:"buoy-routes-tab"})}),re(ie.Actions,{children:[I==="stack"&&S(nt,{value:ae,buttonStyle:A.iconButton,testID:"buoy-routes-stack-copy"}),I==="events"&&re(Ja,{children:[S(nt,{value:go,buttonStyle:A.iconButton,testID:"buoy-routes-copy"}),S(W,{onPress:ne,style:[A.iconButton,E.size>0&&A.activeFilterButton],testID:"buoy-routes-filters",accessibilityRole:"button",accessibilityLabel:E.size>0?`Route filters, ${E.size} active`:"Route filters",children:S($r,{size:14,color:E.size>0?M.color.accent:M.color.textSecondary})}),S(Ar,{isEnabled:R,onToggle:X,accessibilityLabel:"Toggle route event monitoring",testID:"buoy-routes-power"}),S(W,{onPress:Pe,style:A.iconButton,testID:"buoy-routes-clear",accessibilityRole:"button",accessibilityLabel:"Clear route events",children:S(Lr,{size:14,color:M.color.danger})})]})]})]}),fo=g=>{if(g.type==="layout"||g.type==="group")return;let B=g.type==="index"||g.path==="/";if(!N&&!B){$(true);return}i?.onNavigateRoute?.(g)},Rt=S(zr,{visible:T,onClose:()=>$(false),featureName:"Route Event Management"});return n?re(Ft,{children:[re(l,{style:A.inlineRoot,children:[S(l,{style:A.inlineHeader,...Ir,children:Tt}),Ct(),rt]}),Rt]}):S(Ft,{children:re(Dr,{visible:e,onClose:t,onMinimize:r,persistenceKey:yo,header:{showToggleButton:true,customContent:Tt},onModeChange:b,enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,disableScrollWrapper:true,styles:{},footer:rt,footerHeight:rt?68:0,children:[Ct(),Rt]})})}function Ya(e={}){return S(ft,{...e,inline:true,visible:true,onClose:()=>{}})}var A=ve.create({inlineRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},inlineHeader:{paddingHorizontal:12,paddingVertical:8,borderBottomWidth:1,borderBottomColor:Nr.border,backgroundColor:"transparent"},iconButton:{padding:6,borderRadius:6,backgroundColor:M.color.buttonSurface},activeFilterButton:{backgroundColor:M.color.accentSoft},emptyState:{flex:1,justifyContent:"center",alignItems:"center",padding:32},emptyTitle:{color:M.color.text,fontSize:16,fontWeight:"600",marginTop:16,marginBottom:8,fontFamily:Ge,letterSpacing:.5,textTransform:"uppercase"},emptySubtitle:{color:M.color.textSecondary,fontSize:14,textAlign:"center",fontFamily:Ge},contentWrapper:{flex:1},statsContainer:{paddingHorizontal:16,paddingVertical:8,backgroundColor:M.color.surface,borderBottomWidth:1,borderBottomColor:M.color.border},statsText:{fontSize:11,color:M.color.textSecondary,fontFamily:Ge,textAlign:"center"},statsWarning:{color:M.color.warning,fontWeight:"600"},searchContainer:{paddingHorizontal:16,paddingVertical:8,backgroundColor:"transparent"},lockedEventsBanner:{flexDirection:"row",alignItems:"center",gap:8,backgroundColor:M.color.warningSoft,borderWidth:1,borderColor:M.color.warning+"30",borderRadius:8,paddingVertical:10,paddingHorizontal:14,marginHorizontal:16,marginBottom:8},lockedEventsBannerText:{fontSize:12,fontWeight:"600",color:M.color.warning,fontFamily:Ge},lockedEventsBannerSubtext:{fontSize:11,color:M.color.textSecondary,marginLeft:"auto"}});import{createToolFactory as en,defineToolPreset as tn}from"@buoy-gg/shared-ui/web";import{jsx as on}from"react/jsx-runtime";var ro=tn({id:"route-events",name:"ROUTES",description:"Route tracking & navigation inspector",slot:"both",icon:({size:e})=>on(To,{size:e}),component:ft,props:{enableSharedModalDimensions:false}}),rn=en(ro,e=>({enableSharedModalDimensions:e.enableSharedModalDimensions??false}));import{useEffect as an}from"react";import{browserRouter as ao,getBrowserHref as nn,getBrowserRouteURL as no,subscribeBrowserNavigation as sn}from"@buoy-gg/shared-ui/web/utils";var io=0,bt;function ln(){if(typeof window>"u")return()=>{};if(io++===0){he.hydrateBootCapture();let t,o,r="",a=[],n=-1,i=c=>{if(c.href===r&&c.kind==="pop")return;if(c.kind==="replace"&&n>=0)a[n]=c.href;else if(c.kind==="pop"){let v=a.lastIndexOf(c.href,n-1),T=a.indexOf(c.href,n+1);v>=0?n=v:T>=0?n=T:(a.splice(n+1),a.push(c.href),n++)}else a.splice(n+1),a.push(c.href),n++;r=c.href;let h=no(c.href),I=Date.now();Fe.emit({pathname:h.pathname,params:Object.fromEntries(h.searchParams),segments:h.pathname.split("/").filter(Boolean),previousPathname:t,timestamp:I,timeSincePrevious:o===void 0?void 0:I-o}),t=h.pathname,o=I,Q.setStack(a.map((v,T)=>{let $=no(v);return{key:`browser:${T}`,name:$.pathname,pathname:$.pathname,params:Object.fromEntries($.searchParams),index:T,isFocused:T===n,canPop:T>0}}))},u=c=>{if(!Number.isInteger(c)||c<0||c>=a.length)throw new Error("That browser history entry is unavailable.");window.history.go(c-n)};Q.setActions({navigateToIndex:u,popToIndex:u,goBack:ao.back,popToTop:()=>u(0),navigateToRoute:(c,h)=>(ao.push({pathname:c,params:h}),true)}),bt=sn(i),i({href:nn(),kind:"initial"})}let e=false;return()=>{e||(e=true,--io===0&&(bt?.(),bt=void 0,Q.setActions(null)))}}function cn(){return an(ln,[]),null}import{useEffect as so,useRef as vt}from"react";import{useSafePathname as un,useSafeSegments as dn,useSafeGlobalSearchParams as pn}from"@buoy-gg/shared-ui/web";function mn(e){let t=un(),o=dn(),r=pn(),a=vt(e),n=vt(void 0),i=vt(void 0);so(()=>{a.current=e},[e]),so(()=>{let u=Date.now(),c=i.current?u-i.current:void 0,h={pathname:t,params:r,segments:o,timestamp:u,previousPathname:n.current,timeSincePrevious:c};n.current=t,i.current=u,Fe.emit(h),a.current&&a.current(h)},[t,o,r])}import{useEffect as lo,useRef as xt}from"react";function co(e){if(!e||!e.routes||e.routes.length===0)return{route:null,segments:[]};let t=e.routes[e.index??0],o=[t.name];if(t.state){let r=co(t.state);if(r.route)return{route:r.route,segments:[...o,...r.segments]}}return{route:t,segments:o}}function uo(e,t,o,r){if(!e)return;let{route:a,segments:n}=co(e);if(!a)return;let i=`/${a.name}`;if(i===t.current)return;let u=Date.now(),c=o.current?u-o.current:void 0,h={pathname:i,params:a.params||{},segments:n,timestamp:u,previousPathname:t.current,timeSincePrevious:c};t.current=i,o.current=u,Fe.emit(h),r.current&&r.current(h)}function hn(e){let t=void 0,o=xt(e),r=xt(void 0),a=xt(void 0);lo(()=>{o.current=e},[e]),lo(()=>{if(!t)return;let n=t.getRootState?.();n&&uo(n,r,a,o);let i=t.addListener?.("state",()=>{let u=t.getRootState?.();uo(u,r,a,o)});return()=>{i?.()}},[t])}import{getSafeRouter as gn}from"@buoy-gg/shared-ui/web";import{isOverWireBudget as yn}from"@buoy-gg/shared-ui/web";var fn=16*1024,bn=Object.freeze({__buoyOmitted:"route-params",note:"Navigation params stay on the device."});function St(e){return e==null?false:yn(e,fn)}function Ve(e){return St(e)?bn:e}function vn(e){return St(e.params)?{...e,params:Ve(e.params)}:e}function xn(e){return St(e.params)?{...e,params:Ve(e.params)}:e}function Sn(){let e=pt();return{routes:ge.parseRouteTree(We()),source:e.source,lastUpdatedAt:e.lastLoadedAt}}var Cn={version:3,getSnapshot:()=>({events:he.getEvents().map(vn),sitemap:Sn(),stack:Q.getStack().map(xn)}),subscribe:e=>{let t=he.subscribeToEvents(e),o=Q.subscribe(e),r=null;if(!We()){let a=0,n=100,i=()=>{if(a+=1,We()){r=null,e();return}r=a<n?setTimeout(i,100):null};r=setTimeout(i,100)}return()=>{t(),o(),r&&clearTimeout(r)}},actions:{clearEvents:()=>{he.clearEvents()},getCurrentRoute:()=>{let e=he.getEvents()[0];if(e&&he.isCapturing())return{path:e.pathname,params:Ve(e.params),at:e.timestamp,source:"event"};let t=Q.getStack(),o=t.find(r=>r.isFocused)??t[t.length-1];return o?.pathname?{path:o.pathname,params:Ve(o.params??{}),at:null,source:"stack"}:e?{path:e.pathname,params:Ve(e.params),at:e.timestamp,source:"event",stale:true}:{path:null,params:{},at:null,source:null}},navigate:e=>{let t=e,o=t?.path;if(!o)throw new Error("navigate requires a 'path' param");let r=gn();if(!r){let a=Q.getActions(),n=o.replace(/^\//,"");if(!a?.navigateToRoute||!n)throw new Error("expo-router is not available here and no navigation container was captured \u2014 is <RouteTracker /> mounted inside your NavigationContainer?");if(!a.navigateToRoute(n,t?.params))throw new Error(`Could not navigate to "${n}" \u2014 no navigation container is live.`);return{navigated:o,replaced:false,via:"react-navigation"}}return(t?.replace===true&&typeof r.replace=="function"?r.replace:r.navigate)(o),{navigated:o,replaced:t?.replace===true}},stackNavigateToIndex:e=>{let t=e?.index;if(typeof t!="number")throw new Error("stackNavigateToIndex requires a numeric 'index'");let o=Q.getActions();if(!o)throw new Error("navigation stack is not available");return o.navigateToIndex(t),{navigatedToIndex:t}},stackPopToIndex:e=>{let t=e?.index;if(typeof t!="number")throw new Error("stackPopToIndex requires a numeric 'index'");let o=Q.getActions();if(!o)throw new Error("navigation stack is not available");return o.popToIndex(t),{poppedToIndex:t}},stackGoBack:()=>{let e=Q.getActions();if(!e)throw new Error("navigation stack is not available");return e.goBack(),{wentBack:true}},stackPopToTop:()=>{let e=Q.getActions();if(!e)throw new Error("navigation stack is not available");return e.popToTop(),{poppedToTop:true}}}};export{qt as NavigationStack,jt as RouteEventDetail,lt as RouteEventExpandedContent,eo as RouteEventItemCompact,ft as RouteEventsModalWithTabs,zt as RouteObserver,ge as RouteParser,cn as RouteTracker,ht as RoutesSitemap,Ya as RoutesToolView,rn as createRouteEventsTool,Q as navigationStackStore,pa as registerBrowserRoutes,he as routeEventStore,Cn as routeEventsSyncAdapter,ro as routeEventsToolPreset,Fe as routeObserver,Qt as useNavigationStack,ya as useParentRoutes,ga as useRoute,At as useRouteEvents,mn as useRouteObserver,hn as useRouteObserverReactNavigation,Je as useRouteSitemap};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/route-events",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.42",
|
|
4
4
|
"description": "Inspect reported navigation state and supported route actions in React Native apps using Expo Router or React Navigation.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -10,31 +10,41 @@
|
|
|
10
10
|
"exports": {
|
|
11
11
|
".": {
|
|
12
12
|
"react-native": "./lib/module/index.js",
|
|
13
|
+
"browser": {
|
|
14
|
+
"types": "./lib/typescript/index.d.ts",
|
|
15
|
+
"default": "./lib/web/index.mjs"
|
|
16
|
+
},
|
|
13
17
|
"import": {
|
|
14
|
-
"
|
|
15
|
-
"
|
|
18
|
+
"types": "./lib/typescript/index.d.ts",
|
|
19
|
+
"default": "./lib/module/index.js"
|
|
16
20
|
},
|
|
17
21
|
"require": {
|
|
18
|
-
"
|
|
19
|
-
"
|
|
22
|
+
"types": "./lib/typescript/index.d.ts",
|
|
23
|
+
"default": "./lib/commonjs/index.js"
|
|
20
24
|
}
|
|
21
25
|
},
|
|
22
|
-
"./package.json": "./package.json"
|
|
26
|
+
"./package.json": "./package.json",
|
|
27
|
+
"./web": {
|
|
28
|
+
"types": "./lib/typescript/index.d.ts",
|
|
29
|
+
"default": "./lib/web/index.mjs"
|
|
30
|
+
}
|
|
23
31
|
},
|
|
24
32
|
"files": [
|
|
25
33
|
"lib"
|
|
26
34
|
],
|
|
27
35
|
"sideEffects": false,
|
|
28
36
|
"dependencies": {
|
|
29
|
-
"@buoy-gg/floating-tools-core": "^7.0.
|
|
30
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
37
|
+
"@buoy-gg/floating-tools-core": "^7.0.42",
|
|
38
|
+
"@buoy-gg/shared-ui": "^7.0.42"
|
|
31
39
|
},
|
|
32
40
|
"peerDependencies": {
|
|
33
|
-
"@buoy-gg/license": "7.0.
|
|
41
|
+
"@buoy-gg/license": "7.0.42",
|
|
34
42
|
"@react-navigation/native": "*",
|
|
35
43
|
"expo-router": "*",
|
|
36
44
|
"react": "*",
|
|
37
|
-
"react-native": "*"
|
|
45
|
+
"react-native": "*",
|
|
46
|
+
"react-native-web": "^0.21.0",
|
|
47
|
+
"react-dom": ">=18"
|
|
38
48
|
},
|
|
39
49
|
"peerDependenciesMeta": {
|
|
40
50
|
"expo-router": {
|
|
@@ -42,6 +52,15 @@
|
|
|
42
52
|
},
|
|
43
53
|
"@react-navigation/native": {
|
|
44
54
|
"optional": true
|
|
55
|
+
},
|
|
56
|
+
"react-native": {
|
|
57
|
+
"optional": true
|
|
58
|
+
},
|
|
59
|
+
"react-native-web": {
|
|
60
|
+
"optional": true
|
|
61
|
+
},
|
|
62
|
+
"react-dom": {
|
|
63
|
+
"optional": true
|
|
45
64
|
}
|
|
46
65
|
},
|
|
47
66
|
"devDependencies": {
|
|
@@ -51,7 +70,7 @@
|
|
|
51
70
|
"@types/react-native": "^0.73.0",
|
|
52
71
|
"expo-router": "~5.0.7",
|
|
53
72
|
"typescript": "~5.8.3",
|
|
54
|
-
"@buoy-gg/license": "^7.0.
|
|
73
|
+
"@buoy-gg/license": "^7.0.42"
|
|
55
74
|
},
|
|
56
75
|
"react-native-builder-bob": {
|
|
57
76
|
"source": "src",
|
|
@@ -103,9 +122,10 @@
|
|
|
103
122
|
"routes"
|
|
104
123
|
],
|
|
105
124
|
"scripts": {
|
|
106
|
-
"build": "bob build",
|
|
125
|
+
"build": "bob build && pnpm run build:web",
|
|
107
126
|
"typecheck": "tsc --noEmit",
|
|
108
127
|
"clean": "rimraf lib",
|
|
109
|
-
"test": "pnpm run typecheck"
|
|
128
|
+
"test": "pnpm run typecheck",
|
|
129
|
+
"build:web": "node ../../scripts/build-web.mjs route-events"
|
|
110
130
|
}
|
|
111
131
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteObserver.d.ts","sourceRoot":"","sources":["../../src/RouteObserver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAqD;IAEtE;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,gBAAgB;IAW5B;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI;IAKvD;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI;CAG3D;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteParser.d.ts","sourceRoot":"","sources":["../../src/RouteParser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,OAAO,EAAE,IAAI,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAMF;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,GACR,OAAO,GACP,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,IAAI,EAAE,SAAS,CAAC;IAEhB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAE5B,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;IAEpB,sBAAsB;IACtB,QAAQ,EAAE,SAAS,EAAE,CAAC;IAEtB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,EAAE;IAU9D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA+B3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAsBxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA8B9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAQ5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAOjC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE;IAgDxD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU;IAarD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE;IAkBpE;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM;IAuBtE,OAAO,CAAC,MAAM,CAAC,eAAe;IAU9B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,GAAE,MAAM,GAAG,MAAM,GAAG,MAAe,GAAG,SAAS,EAAE;IAe9F;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAK3E;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE;CAsB7E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteTracker.d.ts","sourceRoot":"","sources":["../../src/RouteTracker.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AA4DH,wBAAgB,YAAY,gCAQ3B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationStack.d.ts","sourceRoot":"","sources":["../../../src/components/NavigationStack.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAO/B,uEAAuE;AACvE,MAAM,MAAM,yBAAyB,GACjC,iBAAiB,GACjB,YAAY,GACZ,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ;;;;OAIG;IACH,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CACT,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACzB,IAAI,CAAC;IAEV;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAMD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,aAAa,EACb,QAAQ,EACR,iBAAiB,GAClB,EAAE,oBAAoB,+BA2dtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNavigationRoutes.d.ts","sourceRoot":"","sources":["../../../src/components/ReactNavigationRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuCH,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAkHD,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,0BAA0B,+BAsS1E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteEventDetail.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventDetail.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIzD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,gBAAgB,CAAC;IACxB,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,WAAe,EACf,UAAU,GACX,EAAE,qBAAqB,+BAmCvB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteEventExpandedContent.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventExpandedContent.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAeD,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,WAAW,EACX,aAAa,GACd,EAAE,8BAA8B,+BA+IhC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteEventItemCompact.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventItemCompact.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKzD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB;0DACsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AA6FD,eAAO,MAAM,qBAAqB,kEA6EhC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteEventsModalWithTabs.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventsModalWithTabs.tsx"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;YAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SAC/B,CAAC;QACF,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC3B;;;;WAIG;QACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;QAC7C;;;;;WAKG;QACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5C,2EAA2E;QAC3E,aAAa,CAAC,EAAE,CACd,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,KACzB,IAAI,CAAC;KACX,CAAC;CACH;AAgED,wBAAgB,wBAAwB,CAAC,EACvC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,MAAc,EACd,MAAM,GACP,EAAE,6BAA6B,sCA4mB/B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,GAAE,IAAI,CAAC,6BAA6B,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,+BAKlF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteEventsTimeline.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventsTimeline.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,UAAU,wBAAwB;IAChC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B;wEACoE;IACpE,WAAW,EAAE,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACvE;AAED,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,GACd,EAAE,wBAAwB,+BAoD1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouteFilterViewV2.d.ts","sourceRoot":"","sources":["../../../src/components/RouteFilterViewV2.tsx"],"names":[],"mappings":"AAMA,UAAU,sBAAsB;IAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,eAAe,EACf,eAAe,EACf,YAAY,EACZ,kBAAuB,GACxB,EAAE,sBAAsB,+BAiCxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RoutesSitemap.d.ts","sourceRoot":"","sources":["../../../src/components/RoutesSitemap.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiCH,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAC;AAM5D,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ;;;;OAIG;IACH,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;IAE7B,oDAAoD;IACpD,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;IAExC,8DAA8D;IAC9D,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC9C;AAsCD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,eAAe,GAChB,EAAE,kBAAkB,+BAibpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expoRouterStore.d.ts","sourceRoot":"","sources":["../../src/expoRouterStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;KACzB,CAAC;CACH,CAAC;AAmBF;;;;;;;GAOG;AACH;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAED,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAwD3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,SAAS,GAAG,IAAI,CAqBhD;AAED,wBAAgB,oBAAoB,IAAI;IACtC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAKA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRouteEvents.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRouteEvents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,uBAAuB;IACvB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,6DAA6D;IAC7D,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,cAAc,CAC5B,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAStB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAOxE,OAAO,EACL,wBAAwB,EACxB,cAAc,GACf,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAK3F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EACV,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,YAAY,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAK3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAKvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,qEAAqE;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,qEAAqE;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC;;iDAEiD;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/preset.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAGjF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB;;;;;qBAKf;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;CAKjC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB;IAG9B,qCAAqC;kCACP,OAAO;;;;;;qBA1BtB;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;CA8BlC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"navigationStackStore.d.ts","sourceRoot":"","sources":["../../../src/stores/navigationStackStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,kGAAkG;IAClG,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7D,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,cAAM,oBAAoB;IACxB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,SAAS,CAAyB;IAE1C,QAAQ,IAAI,gBAAgB,EAAE;IAI9B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAKzC,UAAU,IAAI,sBAAsB,GAAG,IAAI;IAI3C,UAAU,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI;IAIxD,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;CAM5C;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routeEventStore.d.ts","sourceRoot":"","sources":["../../../src/stores/routeEventStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;AAEtE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEnE,cAAM,eAAgB,SAAQ,cAAc,CAAC,gBAAgB,CAAC;IAE5D,OAAO,CAAC,wBAAwB,CAA6B;IAE7D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAStC,0EAA0E;IAC1E,kBAAkB,IAAI,IAAI;;IAoB1B;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAQhC;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAO/B;;OAEG;IACH,WAAW,IAAI,OAAO;IAKtB,WAAW,IAAI,OAAO;CAGvB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAGrD,eAAO,MAAM,sBAAsB,GAAI,UAAU,kBAAkB,eACtB,CAAC;AAC9C,eAAO,MAAM,YAAY,GAAI,UAAU,kBAAkB,eACtB,CAAC;AACpC,eAAO,MAAM,cAAc,0BAAoC,CAAC;AAChE,eAAO,MAAM,gBAAgB,YAAsC,CAAC;AACpE,eAAO,MAAM,gBAAgB,eAAsC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routeEventsSyncAdapter.d.ts","sourceRoot":"","sources":["../../../src/sync/routeEventsSyncAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,QAAY,CAAC;AA4BrD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,6EAA6E;IAC7E,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,mEAAmE;IACnE,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;IAC/B,6EAA6E;IAC7E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,8EAA8E;IAC9E,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAWD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB;;uBAEhB,sBAAsB;0BAKjB,MAAM,IAAI;;;QAkC9B;;;;;;;;WAQG;;;;;;;;;;;;;;;;;;;;;;;;;;QAyDH;;;WAGG;4BACiB,OAAO;;;;;;;;;wCAsCK,OAAO;;;mCAUZ,OAAO;;;;;;;;;;CAuBrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigationStack.d.ts","sourceRoot":"","sources":["../../src/useNavigationStack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiCH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IAEvC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAGlB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAGpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;;;;OAKG;IACH,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAqJD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAwDpF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CAiM7D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRouteObserver.d.ts","sourceRoot":"","sources":["../../src/useRouteObserver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,QA0C5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRouteObserverReactNavigation.d.ts","sourceRoot":"","sources":["../../src/useRouteObserverReactNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAwEvE;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,QAmC7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRouteSitemap.d.ts","sourceRoot":"","sources":["../../src/useRouteSitemap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAwEvB,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAElC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;IAE7B,yDAAyD;IACzD,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;IAExC,mEAAmE;IACnE,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,UAAU,EAAE,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,cAAc,EAAE,SAAS,EAAE,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC;IAE9C;;OAEG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAE1C;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;CAChC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CA4IvB;AAMD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAGvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAGzD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routeTemplate.d.ts","sourceRoot":"","sources":["../../../src/utils/routeTemplate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,IAAI,CAqBf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safeReactNavigation.d.ts","sourceRoot":"","sources":["../../../src/utils/safeReactNavigation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkHH,wBAAgB,iBAAiB,QAWhC;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,OAWnE;AAcD,wEAAwE;AACxE,wBAAgB,gBAAgB,IAAI,GAAG,CAItC;AAED,uEAAuE;AACvE,wBAAgB,eAAe,IAAI,GAAG,CAIrC;AAwBD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,IAAI,GAAG,CAKnD;AAMD,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testIDs.d.ts","sourceRoot":"","sources":["../../../src/utils/testIDs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD"}
|