@buoy-gg/route-events 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +654 -0
- package/lib/commonjs/RouteObserver.js +54 -0
- package/lib/commonjs/RouteParser.js +310 -0
- package/lib/commonjs/RouteTracker.js +39 -0
- package/lib/commonjs/components/NavigationStack.js +584 -0
- package/lib/commonjs/components/RouteEventDetailContent.js +492 -0
- package/lib/commonjs/components/RouteEventExpandedContent.js +187 -0
- package/lib/commonjs/components/RouteEventItemCompact.js +175 -0
- package/lib/commonjs/components/RouteEventsModalWithTabs.js +560 -0
- package/lib/commonjs/components/RouteEventsTimeline.js +82 -0
- package/lib/commonjs/components/RouteFilterViewV2.js +42 -0
- package/lib/commonjs/components/RoutesSitemap.js +948 -0
- package/lib/commonjs/expoRouterStore.js +104 -0
- package/lib/commonjs/index.js +99 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/preset.js +83 -0
- package/lib/commonjs/useNavigationStack.js +241 -0
- package/lib/commonjs/useRouteObserver.js +73 -0
- package/lib/commonjs/useRouteSitemap.js +234 -0
- package/lib/commonjs/utils/safeExpoRouter.js +129 -0
- package/lib/commonjs/utils/safeReactNavigation.js +104 -0
- package/lib/module/RouteObserver.js +49 -0
- package/lib/module/RouteParser.js +305 -0
- package/lib/module/RouteTracker.js +35 -0
- package/lib/module/components/NavigationStack.js +580 -0
- package/lib/module/components/RouteEventDetailContent.js +487 -0
- package/lib/module/components/RouteEventExpandedContent.js +183 -0
- package/lib/module/components/RouteEventItemCompact.js +171 -0
- package/lib/module/components/RouteEventsModalWithTabs.js +557 -0
- package/lib/module/components/RouteEventsTimeline.js +78 -0
- package/lib/module/components/RouteFilterViewV2.js +38 -0
- package/lib/module/components/RoutesSitemap.js +944 -0
- package/lib/module/expoRouterStore.js +98 -0
- package/lib/module/index.js +23 -0
- package/lib/module/preset.js +79 -0
- package/lib/module/useNavigationStack.js +238 -0
- package/lib/module/useRouteObserver.js +70 -0
- package/lib/module/useRouteSitemap.js +229 -0
- package/lib/module/utils/safeExpoRouter.js +120 -0
- package/lib/module/utils/safeReactNavigation.js +98 -0
- package/lib/typescript/RouteObserver.d.ts +37 -0
- package/lib/typescript/RouteObserver.d.ts.map +1 -0
- package/lib/typescript/RouteParser.d.ts +129 -0
- package/lib/typescript/RouteParser.d.ts.map +1 -0
- package/lib/typescript/RouteTracker.d.ts +29 -0
- package/lib/typescript/RouteTracker.d.ts.map +1 -0
- package/lib/typescript/components/NavigationStack.d.ts +11 -0
- package/lib/typescript/components/NavigationStack.d.ts.map +1 -0
- package/lib/typescript/components/RouteEventDetailContent.d.ts +21 -0
- package/lib/typescript/components/RouteEventDetailContent.d.ts.map +1 -0
- package/lib/typescript/components/RouteEventExpandedContent.d.ts +16 -0
- package/lib/typescript/components/RouteEventExpandedContent.d.ts.map +1 -0
- package/lib/typescript/components/RouteEventItemCompact.d.ts +15 -0
- package/lib/typescript/components/RouteEventItemCompact.d.ts.map +1 -0
- package/lib/typescript/components/RouteEventsModalWithTabs.d.ts +15 -0
- package/lib/typescript/components/RouteEventsModalWithTabs.d.ts.map +1 -0
- package/lib/typescript/components/RouteEventsTimeline.d.ts +17 -0
- package/lib/typescript/components/RouteEventsTimeline.d.ts.map +1 -0
- package/lib/typescript/components/RouteFilterViewV2.d.ts +9 -0
- package/lib/typescript/components/RouteFilterViewV2.d.ts.map +1 -0
- package/lib/typescript/components/RoutesSitemap.d.ts +15 -0
- package/lib/typescript/components/RoutesSitemap.d.ts.map +1 -0
- package/lib/typescript/expoRouterStore.d.ts +28 -0
- package/lib/typescript/expoRouterStore.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +18 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/preset.d.ts +76 -0
- package/lib/typescript/preset.d.ts.map +1 -0
- package/lib/typescript/useNavigationStack.d.ts +48 -0
- package/lib/typescript/useNavigationStack.d.ts.map +1 -0
- package/lib/typescript/useRouteObserver.d.ts +27 -0
- package/lib/typescript/useRouteObserver.d.ts.map +1 -0
- package/lib/typescript/useRouteSitemap.d.ts +102 -0
- package/lib/typescript/useRouteSitemap.d.ts.map +1 -0
- package/lib/typescript/utils/safeExpoRouter.d.ts +13 -0
- package/lib/typescript/utils/safeExpoRouter.d.ts.map +1 -0
- package/lib/typescript/utils/safeReactNavigation.d.ts +10 -0
- package/lib/typescript/utils/safeReactNavigation.d.ts.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteEventDetailContent.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventDetailContent.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAezD,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,4BAA4B;IACpC,YAAY,EAAE,iBAAiB,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,uBAAuB,CAAC,EACtC,YAAY,EACZ,kBAAsB,EACtB,kBAA6B,EAC7B,qBAA6B,GAC9B,EAAE,4BAA4B,+BAwT9B;AAGD,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EACZ,kBAAsB,EACtB,kBAA6B,GAC9B,EAAE;IACD,YAAY,EAAE,iBAAiB,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,sCA2EA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RouteEventExpandedContent - Expanded view for route event details
|
|
3
|
+
*
|
|
4
|
+
* Shows 3 organized sections:
|
|
5
|
+
* - Section A: Route Information (Template, From, To)
|
|
6
|
+
* - Section B: Timing Information (Duration, Time)
|
|
7
|
+
* - Section C: Parameters & Metadata (Segments, Parameters, Visit count)
|
|
8
|
+
*/
|
|
9
|
+
import type { RouteChangeEvent } from "../RouteObserver";
|
|
10
|
+
export interface RouteEventExpandedContentProps {
|
|
11
|
+
event: RouteChangeEvent;
|
|
12
|
+
visitNumber: number;
|
|
13
|
+
routeTemplate: string | null;
|
|
14
|
+
}
|
|
15
|
+
export declare function RouteEventExpandedContent({ event, visitNumber, routeTemplate, }: RouteEventExpandedContentProps): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=RouteEventExpandedContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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+GhC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RouteEventItemCompact - Compact list item for route events
|
|
3
|
+
*
|
|
4
|
+
* Uses CompactRow pattern matching network/storage components
|
|
5
|
+
*/
|
|
6
|
+
import type { RouteChangeEvent } from "../RouteObserver";
|
|
7
|
+
export interface RouteEventItemCompactProps {
|
|
8
|
+
event: RouteChangeEvent;
|
|
9
|
+
visitNumber: number;
|
|
10
|
+
isExpanded: boolean;
|
|
11
|
+
onPress: () => void;
|
|
12
|
+
onNavigate?: (pathname: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function RouteEventItemCompact({ event, visitNumber, isExpanded, onPress, onNavigate, }: RouteEventItemCompactProps): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=RouteEventItemCompact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAGzD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,gBAAgB,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAmFD,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,WAAW,EACX,UAAU,EACV,OAAO,EACP,UAAU,GACX,EAAE,0BAA0B,+BAyD5B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { routeObserver as defaultRouteObserver } from "../RouteObserver";
|
|
2
|
+
export interface RouteEventsModalWithTabsProps {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
onBack?: () => void;
|
|
6
|
+
onMinimize?: (modalState: any) => void;
|
|
7
|
+
enableSharedModalDimensions?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Optional route observer instance. If not provided, uses the default singleton.
|
|
10
|
+
* Route tracking will start automatically when the modal is opened.
|
|
11
|
+
*/
|
|
12
|
+
routeObserver?: typeof defaultRouteObserver;
|
|
13
|
+
}
|
|
14
|
+
export declare function RouteEventsModalWithTabs({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, routeObserver, }: RouteEventsModalWithTabsProps): import("react").JSX.Element | null;
|
|
15
|
+
//# sourceMappingURL=RouteEventsModalWithTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteEventsModalWithTabs.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventsModalWithTabs.tsx"],"names":[],"mappings":"AA0DA,OAAO,EACL,aAAa,IAAI,oBAAoB,EAEtC,MAAM,kBAAkB,CAAC;AAU1B,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;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,oBAAoB,CAAC;CAC7C;AAID,wBAAgB,wBAAwB,CAAC,EACvC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,aAAoC,GACrC,EAAE,6BAA6B,sCAshB/B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RouteEventsTimeline - Chronological timeline of route navigation events
|
|
3
|
+
*
|
|
4
|
+
* Shows events in the order they happened (most recent first),
|
|
5
|
+
* providing a clear history of navigation actions.
|
|
6
|
+
*
|
|
7
|
+
* Uses two-level expansion pattern matching network/storage components.
|
|
8
|
+
*/
|
|
9
|
+
import type { RouteChangeEvent } from "../RouteObserver";
|
|
10
|
+
interface RouteEventsTimelineProps {
|
|
11
|
+
events: RouteChangeEvent[];
|
|
12
|
+
visitCounts: Map<number, number>;
|
|
13
|
+
onNavigate?: (pathname: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function RouteEventsTimeline({ events, visitCounts, onNavigate, }: RouteEventsTimelineProps): import("react").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=RouteEventsTimeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteEventsTimeline.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventsTimeline.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,UAAU,wBAAwB;IAChC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,WAAW,EACX,UAAU,GACX,EAAE,wBAAwB,+BAiC1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface RouteFilterViewV2Props {
|
|
2
|
+
ignoredPatterns: Set<string>;
|
|
3
|
+
onTogglePattern: (pattern: string) => void;
|
|
4
|
+
onAddPattern: (pattern: string) => void;
|
|
5
|
+
availablePathnames?: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function RouteFilterViewV2({ ignoredPatterns, onTogglePattern, onAddPattern, availablePathnames, }: RouteFilterViewV2Props): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=RouteFilterViewV2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RoutesSitemap - Visual sitemap of all app routes
|
|
3
|
+
*
|
|
4
|
+
* Displays parsed route information from Expo Router with:
|
|
5
|
+
* - Search/filter
|
|
6
|
+
* - Organized groups
|
|
7
|
+
* - Route details
|
|
8
|
+
* - Copy to clipboard
|
|
9
|
+
* - Navigation
|
|
10
|
+
*/
|
|
11
|
+
export interface RoutesSitemapProps {
|
|
12
|
+
style?: any;
|
|
13
|
+
}
|
|
14
|
+
export declare function RoutesSitemap({ style }: RoutesSitemapProps): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=RoutesSitemap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoutesSitemap.d.ts","sourceRoot":"","sources":["../../../src/components/RoutesSitemap.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAuDH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAmBD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,+BAqW1D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { RouteNode } from "expo-router/build/Route";
|
|
2
|
+
type ExpoRouterStore = {
|
|
3
|
+
routeNode?: RouteNode | null;
|
|
4
|
+
navigationRef?: {
|
|
5
|
+
isReady?: () => boolean;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Attempt to require the expo-router store from known locations.
|
|
10
|
+
* Returns null (with a logged error in dev) when expo-router is not available.
|
|
11
|
+
*
|
|
12
|
+
* Note: The store uses getters that read from an internal storeRef.
|
|
13
|
+
* The storeRef gets populated when Expo Router's useStore() hook runs.
|
|
14
|
+
* So we cache the store reference but its property values update over time.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getExpoRouterStore(): ExpoRouterStore | null;
|
|
17
|
+
/**
|
|
18
|
+
* Returns the current RouteNode tree (if available).
|
|
19
|
+
* Logs a helpful warning in development when the tree is missing even though
|
|
20
|
+
* the navigation ref is ready.
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadRouteNode(): RouteNode | null;
|
|
23
|
+
export declare function getRouteNodeMetadata(): {
|
|
24
|
+
source: "build" | "src" | null;
|
|
25
|
+
lastLoadedAt: number | null;
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=expoRouterStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAkD3D;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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { RouteEventsModalWithTabs } from "./components/RouteEventsModalWithTabs";
|
|
2
|
+
export type { RouteEventsModalWithTabsProps } from "./components/RouteEventsModalWithTabs";
|
|
3
|
+
export { routeEventsToolPreset, createRouteEventsTool } from "./preset";
|
|
4
|
+
export { RouteTracker } from "./RouteTracker";
|
|
5
|
+
export { RoutesSitemap } from "./components/RoutesSitemap";
|
|
6
|
+
export type { RoutesSitemapProps } from "./components/RoutesSitemap";
|
|
7
|
+
export { NavigationStack } from "./components/NavigationStack";
|
|
8
|
+
export type { NavigationStackProps } from "./components/NavigationStack";
|
|
9
|
+
export { RouteObserver, routeObserver } from "./RouteObserver";
|
|
10
|
+
export { useRouteObserver } from "./useRouteObserver";
|
|
11
|
+
export type { RouteChangeEvent } from "./RouteObserver";
|
|
12
|
+
export { RouteParser } from "./RouteParser";
|
|
13
|
+
export type { RouteInfo, RouteType, RouteGroup, RouteStats, } from "./RouteParser";
|
|
14
|
+
export { useRouteSitemap, useRoute, useParentRoutes } from "./useRouteSitemap";
|
|
15
|
+
export type { UseRouteSitemapOptions, UseRouteSitemapResult, } from "./useRouteSitemap";
|
|
16
|
+
export { useNavigationStack } from "./useNavigationStack";
|
|
17
|
+
export type { UseNavigationStackResult, StackDisplayItem, } from "./useNavigationStack";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,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,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIzE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-configured route events tool for FloatingDevTools
|
|
3
|
+
*
|
|
4
|
+
* This preset provides a zero-config way to add route tracking to your dev tools.
|
|
5
|
+
* Just import and spread it into your apps array!
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* import { routeEventsToolPreset } from '@buoy-gg/route-events';
|
|
10
|
+
*
|
|
11
|
+
* const installedApps = [
|
|
12
|
+
* routeEventsToolPreset, // That's it!
|
|
13
|
+
* // ...other tools
|
|
14
|
+
* ];
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
import { RouteEventsModalWithTabs } from "./components/RouteEventsModalWithTabs";
|
|
18
|
+
/**
|
|
19
|
+
* Pre-configured route events tool for FloatingDevTools.
|
|
20
|
+
* Includes:
|
|
21
|
+
* - Route sitemap browser
|
|
22
|
+
* - Event timeline with filtering
|
|
23
|
+
* - Navigation stack visualization
|
|
24
|
+
* - Automatic route tracking (no setup needed)
|
|
25
|
+
*/
|
|
26
|
+
export declare const routeEventsToolPreset: {
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
description: string;
|
|
30
|
+
slot: "both";
|
|
31
|
+
icon: ({ size }: {
|
|
32
|
+
size: number;
|
|
33
|
+
}) => import("react").JSX.Element;
|
|
34
|
+
component: typeof RouteEventsModalWithTabs;
|
|
35
|
+
props: {
|
|
36
|
+
enableSharedModalDimensions: boolean;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Create a custom route events tool configuration.
|
|
41
|
+
* Use this if you want to override default settings.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* import { createRouteEventsTool } from '@buoy-gg/route-events';
|
|
46
|
+
*
|
|
47
|
+
* const myRouteTool = createRouteEventsTool({
|
|
48
|
+
* name: "MY ROUTES",
|
|
49
|
+
* color: "#a78bfa",
|
|
50
|
+
* enableSharedModalDimensions: true,
|
|
51
|
+
* });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function createRouteEventsTool(options?: {
|
|
55
|
+
/** Tool name (default: "ROUTES") */
|
|
56
|
+
name?: string;
|
|
57
|
+
/** Tool description */
|
|
58
|
+
description?: string;
|
|
59
|
+
/** Custom tool ID (default: "route-events") */
|
|
60
|
+
id?: string;
|
|
61
|
+
/** Enable shared modal dimensions */
|
|
62
|
+
enableSharedModalDimensions?: boolean;
|
|
63
|
+
}): {
|
|
64
|
+
id: string;
|
|
65
|
+
name: string;
|
|
66
|
+
description: string;
|
|
67
|
+
slot: "both";
|
|
68
|
+
icon: ({ size }: {
|
|
69
|
+
size: number;
|
|
70
|
+
}) => import("react").JSX.Element;
|
|
71
|
+
component: typeof RouteEventsModalWithTabs;
|
|
72
|
+
props: {
|
|
73
|
+
enableSharedModalDimensions: boolean;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=preset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/preset.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB;;;;;qBAKf;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;CAKlC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE;IAC9C,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;;;;;qBAOoB;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;EASpC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useNavigationStack - Hook to access current navigation stack state
|
|
3
|
+
*
|
|
4
|
+
* Provides real-time access to the navigation stack from Expo Router,
|
|
5
|
+
* showing what screens are currently mounted in memory and which is visible.
|
|
6
|
+
*
|
|
7
|
+
* Data source: @react-navigation/native
|
|
8
|
+
*/
|
|
9
|
+
export interface StackDisplayItem {
|
|
10
|
+
key: string;
|
|
11
|
+
name: string;
|
|
12
|
+
pathname: string;
|
|
13
|
+
params: Record<string, any>;
|
|
14
|
+
isFocused: boolean;
|
|
15
|
+
index: number;
|
|
16
|
+
canPop: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface UseNavigationStackResult {
|
|
19
|
+
stack: StackDisplayItem[];
|
|
20
|
+
focusedRoute: StackDisplayItem | null;
|
|
21
|
+
stackDepth: number;
|
|
22
|
+
isAtRoot: boolean;
|
|
23
|
+
isLoaded: boolean;
|
|
24
|
+
error: Error | null;
|
|
25
|
+
refresh: () => void;
|
|
26
|
+
navigateToIndex: (index: number) => void;
|
|
27
|
+
popToIndex: (index: number) => void;
|
|
28
|
+
goBack: () => void;
|
|
29
|
+
popToTop: () => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Access the current navigation stack from Expo Router
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const { stack, focusedRoute, goBack, popToTop } = useNavigationStack();
|
|
37
|
+
*
|
|
38
|
+
* // Display stack
|
|
39
|
+
* stack.map(item => (
|
|
40
|
+
* <View key={item.key}>
|
|
41
|
+
* <Text>{item.pathname}</Text>
|
|
42
|
+
* {item.isFocused && <Text>VISIBLE</Text>}
|
|
43
|
+
* </View>
|
|
44
|
+
* ));
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function useNavigationStack(): UseNavigationStackResult;
|
|
48
|
+
//# sourceMappingURL=useNavigationStack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNavigationStack.d.ts","sourceRoot":"","sources":["../../src/useNavigationStack.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH,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,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAsED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CAkK7D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useRouteObserver - React hook for observing route changes
|
|
3
|
+
*
|
|
4
|
+
* Uses public Expo Router hooks to track route changes and emits them
|
|
5
|
+
* to the global RouteObserver singleton.
|
|
6
|
+
*/
|
|
7
|
+
import { type RouteChangeEvent } from "./RouteObserver";
|
|
8
|
+
/**
|
|
9
|
+
* Hook to observe route changes in Expo Router
|
|
10
|
+
* Automatically emits events to the global RouteObserver
|
|
11
|
+
*
|
|
12
|
+
* @param callback - Optional function to call on route changes (in addition to the observer)
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* // Just track routes (no custom callback)
|
|
17
|
+
* useRouteObserver();
|
|
18
|
+
*
|
|
19
|
+
* // Track routes with custom callback
|
|
20
|
+
* useRouteObserver((event) => {
|
|
21
|
+
* // Handle route change
|
|
22
|
+
* analytics.trackPageView(event.pathname);
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function useRouteObserver(callback?: (event: RouteChangeEvent) => void): void;
|
|
27
|
+
//# sourceMappingURL=useRouteObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouteObserver.d.ts","sourceRoot":"","sources":["../../src/useRouteObserver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,QAyC5E"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useRouteSitemap - React hooks for accessing parsed route information
|
|
3
|
+
*
|
|
4
|
+
* Provides access to the Expo Router route tree with parsing, filtering,
|
|
5
|
+
* and search capabilities.
|
|
6
|
+
*/
|
|
7
|
+
import { type RouteInfo, type RouteGroup, type RouteStats } from "./RouteParser";
|
|
8
|
+
export interface UseRouteSitemapOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Search query to filter routes
|
|
11
|
+
*/
|
|
12
|
+
searchQuery?: string;
|
|
13
|
+
/**
|
|
14
|
+
* How to sort routes
|
|
15
|
+
*/
|
|
16
|
+
sortBy?: "path" | "type" | "name";
|
|
17
|
+
/**
|
|
18
|
+
* Auto-refresh when route tree changes
|
|
19
|
+
* @default false
|
|
20
|
+
*/
|
|
21
|
+
autoRefresh?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Refresh interval in milliseconds (when autoRefresh is true)
|
|
24
|
+
* @default 1000
|
|
25
|
+
*/
|
|
26
|
+
refreshInterval?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface UseRouteSitemapResult {
|
|
29
|
+
/**
|
|
30
|
+
* All parsed routes (nested structure)
|
|
31
|
+
*/
|
|
32
|
+
routes: RouteInfo[];
|
|
33
|
+
/**
|
|
34
|
+
* Routes organized into groups
|
|
35
|
+
*/
|
|
36
|
+
groups: RouteGroup[];
|
|
37
|
+
/**
|
|
38
|
+
* Route statistics
|
|
39
|
+
*/
|
|
40
|
+
stats: RouteStats;
|
|
41
|
+
/**
|
|
42
|
+
* Filtered routes based on search query
|
|
43
|
+
*/
|
|
44
|
+
filteredRoutes: RouteInfo[];
|
|
45
|
+
/**
|
|
46
|
+
* Is route data loaded
|
|
47
|
+
*/
|
|
48
|
+
isLoaded: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Manually refresh route data
|
|
51
|
+
*/
|
|
52
|
+
refresh: () => void;
|
|
53
|
+
/**
|
|
54
|
+
* Find a route by path
|
|
55
|
+
*/
|
|
56
|
+
findRoute: (path: string) => RouteInfo | null;
|
|
57
|
+
/**
|
|
58
|
+
* Get parent routes for a path
|
|
59
|
+
*/
|
|
60
|
+
getParents: (path: string) => RouteInfo[];
|
|
61
|
+
/**
|
|
62
|
+
* Timestamp of the most recent successful load
|
|
63
|
+
*/
|
|
64
|
+
lastUpdatedAt: number | null;
|
|
65
|
+
/**
|
|
66
|
+
* Which expo-router path provided the route store ("build" or "src")
|
|
67
|
+
*/
|
|
68
|
+
source: "build" | "src" | null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Hook to access and parse Expo Router's route tree
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```tsx
|
|
75
|
+
* const { routes, groups, stats, filteredRoutes } = useRouteSitemap({
|
|
76
|
+
* searchQuery: 'pokemon',
|
|
77
|
+
* sortBy: 'path',
|
|
78
|
+
* autoRefresh: true
|
|
79
|
+
* });
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function useRouteSitemap(options?: UseRouteSitemapOptions): UseRouteSitemapResult;
|
|
83
|
+
/**
|
|
84
|
+
* Get a specific route by path
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```tsx
|
|
88
|
+
* const pokemonRoute = useRoute('/pokemon/[id]');
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export declare function useRoute(path: string): RouteInfo | null;
|
|
92
|
+
/**
|
|
93
|
+
* Get all parent routes for a given path
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```tsx
|
|
97
|
+
* const parents = useParentRoutes('/pokemon/[id]');
|
|
98
|
+
* // Returns: [{ path: '/pokemon', ... }]
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export declare function useParentRoutes(path: string): RouteInfo[];
|
|
102
|
+
//# sourceMappingURL=useRouteSitemap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAoEvB,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;CAC1B;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;;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,CAuHvB;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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safe wrapper for expo-router
|
|
3
|
+
*
|
|
4
|
+
* Provides optional imports for expo-router hooks and utilities.
|
|
5
|
+
* Falls back to no-op implementations when expo-router is not installed.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useSafeRouter(): any;
|
|
8
|
+
export declare function useSafePathname(): string;
|
|
9
|
+
export declare function useSafeSegments(): string[];
|
|
10
|
+
export declare function useSafeGlobalSearchParams(): Record<string, string | string[]>;
|
|
11
|
+
export declare function getSafeRouter(): any;
|
|
12
|
+
export declare function isExpoRouterAvailable(): boolean;
|
|
13
|
+
//# sourceMappingURL=safeExpoRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeExpoRouter.d.ts","sourceRoot":"","sources":["../../../src/utils/safeExpoRouter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoDH,wBAAgB,aAAa,QAW5B;AAED,wBAAgB,eAAe,IAAI,MAAM,CAWxC;AAED,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAW1C;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAW7E;AAMD,wBAAgB,aAAa,QAU5B;AAMD,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safe wrapper for @react-navigation/native
|
|
3
|
+
*
|
|
4
|
+
* Provides optional imports for React Navigation hooks.
|
|
5
|
+
* Falls back to no-op implementations when @react-navigation/native is not installed.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useSafeNavigation(): any;
|
|
8
|
+
export declare function useSafeNavigationState(selector: (state: any) => any): any;
|
|
9
|
+
export declare function isReactNavigationAvailable(): boolean;
|
|
10
|
+
//# sourceMappingURL=safeReactNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeReactNavigation.d.ts","sourceRoot":"","sources":["../../../src/utils/safeReactNavigation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2EH,wBAAgB,iBAAiB,QAWhC;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,OAWnE;AAMD,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD"}
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@buoy-gg/route-events",
|
|
3
|
+
"version": "1.7.2",
|
|
4
|
+
"description": "route-events package",
|
|
5
|
+
"main": "lib/commonjs/index.js",
|
|
6
|
+
"module": "lib/module/index.js",
|
|
7
|
+
"types": "lib/typescript/index.d.ts",
|
|
8
|
+
"react-native": "src/index.tsx",
|
|
9
|
+
"source": "src/index.tsx",
|
|
10
|
+
"files": [
|
|
11
|
+
"lib"
|
|
12
|
+
],
|
|
13
|
+
"sideEffects": false,
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "bob build",
|
|
16
|
+
"typecheck": "tsc --noEmit",
|
|
17
|
+
"prepublishOnly": "bob build",
|
|
18
|
+
"clean": "rimraf lib",
|
|
19
|
+
"test": "pnpm run typecheck"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@buoy-gg/floating-tools-core": "workspace:*",
|
|
23
|
+
"@buoy-gg/shared-ui": "workspace:*"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"@react-native-async-storage/async-storage": "*",
|
|
27
|
+
"@react-navigation/native": "*",
|
|
28
|
+
"expo-router": "*",
|
|
29
|
+
"react": "*",
|
|
30
|
+
"react-native": "*"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@react-native-async-storage/async-storage": "^2.1.0",
|
|
34
|
+
"@react-navigation/native": "^7.1.18",
|
|
35
|
+
"@types/react": "^19.1.0",
|
|
36
|
+
"@types/react-native": "^0.73.0",
|
|
37
|
+
"expo-router": "~5.0.7",
|
|
38
|
+
"typescript": "~5.8.3"
|
|
39
|
+
},
|
|
40
|
+
"react-native-builder-bob": {
|
|
41
|
+
"source": "src",
|
|
42
|
+
"output": "lib",
|
|
43
|
+
"targets": [
|
|
44
|
+
[
|
|
45
|
+
"commonjs",
|
|
46
|
+
{
|
|
47
|
+
"sourceMaps": false
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
"module",
|
|
52
|
+
{
|
|
53
|
+
"sourceMaps": false
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"typescript"
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"repository": {
|
|
60
|
+
"type": "git",
|
|
61
|
+
"url": "https://github.com/LovesWorking/react-native-buoy.git",
|
|
62
|
+
"directory": "packages/route-events"
|
|
63
|
+
},
|
|
64
|
+
"bugs": {
|
|
65
|
+
"url": "https://github.com/LovesWorking/react-native-buoy/issues"
|
|
66
|
+
},
|
|
67
|
+
"homepage": "https://github.com/LovesWorking/react-native-buoy/tree/main/packages/route-events#readme",
|
|
68
|
+
"publishConfig": {
|
|
69
|
+
"access": "public",
|
|
70
|
+
"tag": "latest"
|
|
71
|
+
}
|
|
72
|
+
}
|