@ahnseungchan/webviewkit 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -48,8 +48,8 @@ export default function App() {
48
48
 
49
49
  | 상황 | 동작 |
50
50
  |------|------|
51
- | `push(path)` | 항상 새 엔트리. 전환 중이면 무시(`false`) |
52
- | 같은 path 다시 push | 새 인스턴스가 쌓인다. 기존 페이지로 가려면 `popTo(path)` |
51
+ | `push(path)` | 새 엔트리를 쌓는다. 단 `keepAlive` 페이지의 캐시본이 같은 path 로 있으면 그 인스턴스를 되살린다. 전환 중이면 무시(`false`) |
52
+ | 같은 path 다시 push | 새 인스턴스가 쌓인다. 기존 페이지로 가려면 `popTo(path)`. 단 `keepAlive` 페이지는 캐시된 인스턴스가 되살아난다 |
53
53
  | 브라우저·하드웨어 back | popstate 로 스택 pop (URL·화면 항상 일치) |
54
54
  | 루트에서 `back()` | history 를 건드리지 않고 `onBackAtRoot()` |
55
55
  | 미등록 path | URL 변경 없음, dev 경고 + `onNotFound(path)` |
@@ -62,12 +62,14 @@ export default function App() {
62
62
  | prop | 기본 | 설명 |
63
63
  |------|------|------|
64
64
  | `initialActivity` | — | 루트 페이지. 마운트 시 1회만 읽음 |
65
- | `Activities` | `[]` | `{ path, element }[]`. path 에 `:param` 사용 가능 |
65
+ | `Activities` | `[]` | `{ path, element, keepAlive? }[]`. path 에 `:param` 사용 가능. `keepAlive: true` 면 pop 뒤에도 마운트 유지(스크롤·입력·state 보존), 같은 path(pathname+search) push 시 되살림. replace·reset 은 되살리지 않고 대상 path 의 캐시본을 버림 |
66
+ | `keepAliveLimit` | `5` (`KEEP_ALIVE_LIMIT`) | 캐시할 keepAlive 페이지 최대 개수(스택 위 keepAlive 페이지 포함). `0` 이면 끔(`keepAlive` 라우트도 일반 페이지처럼 동작). 마운트 시 1회만 읽음 |
67
+ | `maxMountedPages` | 무제한 | 동시 마운트 페이지 상한(1 미만은 1, 유한한 수가 아니면 무제한). 스택 안·캐시된 keepAlive 페이지는 상한과 무관하게 언마운트하지 않으므로 keepAlive 페이지가 많으면 상한보다 많이 마운트될 수 있다(`keepAliveLimit` 으로 제한). 전환 중 페이지도 마운트하되, 언마운트돼 있던 페이지는 퇴장 슬라이드를 위해 다시 마운트하지 않는다. 그 외는 back 시 새로 마운트. 15개 초과 시 dev 경고 |
66
68
  | `transition` | `"slide"` | `"slide"`(iOS 네이티브 스택: 패럴랙스·dim·가장자리 그림자) · `"fade"` · `"none"` |
67
69
  | `duration` | `500` | 전환 ms |
68
70
  | `restoreStack` | `"with-root"` | 딥링크 복원 정책 |
69
71
  | `onBackAtRoot` / `onNotFound` | — | 콜백 |
70
- | `isShowHeader` | `false` | `StackHeader` 렌더 |
72
+ | `isShowHeader` | `false` | 각 페이지 상단에 `StackHeader` 렌더. 헤더가 페이지와 함께 슬라이드되고, 스크롤 시 상단 고정(sticky) |
71
73
  | `safeArea` | `false` | `env(safe-area-inset-*)` padding |
72
74
  | `maxWidth` | `"600px"` | 본문 최대 폭 |
73
75
  | `enableDevTools` | dev 에서 true | 스택 로드맵 오버레이 |
@@ -77,8 +79,10 @@ export default function App() {
77
79
 
78
80
  | hook | 반환 |
79
81
  |------|------|
80
- | `useStackRouter()` | `push`, `replace`, `reset`, `back`, `pop(n)`, `popTo(path)`, `canGoBack`, `depth`, `currentPath`, `currentState`, `entries`, `isTransitioning` |
81
- | `useActivity()` | 현재 페이지의 `{ key, path, pattern, params, query, data, index, isTop }` |
82
+ | `useStackRouter()` | `push`, `replace`, `reset`, `resetPush`, `back`, `pop(n)`, `popTo(path)`, `canGoBack`, `depth`, `currentPath`, `currentState`, `entries`, `isTransitioning` |
83
+ | `useStackRouter().resetPush(path, data?)` | 루트만 남기고 `path` 를 push (스택 `[루트, path]`, push 슬라이드). 결제 완료 → 결과 화면처럼 중간 단계를 지울 때 |
84
+ | `useActivity()` | 현재 페이지의 `{ key, path, pattern, params, query, data, index, isTop, isCached, revision }`. `index` 는 스택 위치(0 = 루트, 캐시 중이면 `-1`). `isCached` 는 keepAlive 로 숨겨진 상태. `revision` 은 인스턴스가 새 `data` 로 재사용된 횟수 |
85
+ | `useOnRevive(callback)` | 기존 인스턴스가 새 `data` 로 재사용될 때마다 `callback(data)` 1회 호출: 캐시된 페이지가 되살아날 때, `resetPush` 가 스택 안 keepAlive 인스턴스를 재사용할 때. 최초 마운트에는 호출 안 함. 새 `data` 로 화면을 갱신할 때 |
82
86
  | `useParams()` | `params` |
83
87
 
84
88
  테마는 CSS 변수로 바꿉니다: `--wvk-page-bg`, `--wvk-dim-color`, `--wvk-edge-shadow`, `--wvk-header-bg`, `--wvk-header-border`, `--wvk-header-color`, `--wvk-back-color`.
package/dist/index.d.mts CHANGED
@@ -275,6 +275,8 @@ declare const STACK_TRANSITION_MS = 500;
275
275
  declare const BACK_TIMEOUT_MS = 1000;
276
276
  /** 브릿지 요청 응답 기본 타임아웃 */
277
277
  declare const BRIDGE_TIMEOUT_MS = 5000;
278
+ /** keepAlive 페이지 기본 최대 보관 수 (스택 안 keepAlive 포함) */
279
+ declare const KEEP_ALIVE_LIMIT = 5;
278
280
 
279
281
  interface StackBridgeSyncOptions {
280
282
  allowUrl?: AllowUrl;
@@ -287,6 +289,8 @@ interface Activity {
287
289
  /** 정적 경로 또는 동적 세그먼트 패턴 (`/detail/:id`) */
288
290
  path: string;
289
291
  element: React.ReactNode;
292
+ /** true 면 스택에서 빠져도 인스턴스(state)를 보관했다가 같은 path 로 돌아오면 되살린다 */
293
+ keepAlive?: boolean;
290
294
  }
291
295
  type StackTransitionType = "slide" | "fade" | "none";
292
296
  type RestoreStackPolicy = "with-root" | "top-only";
@@ -294,7 +298,7 @@ interface StackRouterProviderProps {
294
298
  initialActivity: Activity;
295
299
  Activities?: Activity[];
296
300
  maxWidth?: string;
297
- /** true면 상단에 `StackHeader` 렌더 */
301
+ /** true면 각 페이지 상단에 `StackHeader` 렌더 (페이지와 함께 전환) */
298
302
  isShowHeader?: boolean;
299
303
  /** 개발 시 스택 로드맵 오버레이 (기본: NODE_ENV === "development") */
300
304
  enableDevTools?: boolean;
@@ -303,6 +307,10 @@ interface StackRouterProviderProps {
303
307
  duration?: number;
304
308
  /** 새로고침·딥링크 진입 시 스택 복원 정책 (기본 "with-root") */
305
309
  restoreStack?: RestoreStackPolicy;
310
+ /** keepAlive 페이지 최대 보관 수 (기본 KEEP_ALIVE_LIMIT, 0 이면 보관 안 함) */
311
+ keepAliveLimit?: number;
312
+ /** 스택 top 에서부터 children 을 마운트할 최대 페이지 수 (기본 제한 없음, 1 미만은 1) */
313
+ maxMountedPages?: number;
306
314
  /** env(safe-area-inset-*) padding 적용 */
307
315
  safeArea?: boolean;
308
316
  /** 루트에서 back 했을 때 (앱 종료·WebView 닫기 위임) */
@@ -379,9 +387,13 @@ interface BackRouterProps {
379
387
  declare const BackRouter: ({ label }: BackRouterProps) => _emotion_react_jsx_runtime.JSX.Element;
380
388
 
381
389
  interface StackHeaderProps {
382
- /** 기본: 현재 path */
390
+ /** 기본: 이 헤더가 속한 페이지의 path */
383
391
  title?: React.ReactNode;
384
392
  }
393
+ /**
394
+ * 페이지 안에 있으면 그 페이지 기준(제목·back 버튼)으로 그려 페이지와 함께 전환된다.
395
+ * 페이지 밖이면 현재 top 기준.
396
+ */
385
397
  declare const Header: ({ title }: StackHeaderProps) => _emotion_react_jsx_runtime.JSX.Element;
386
398
 
387
399
  interface ActivityContextValue {
@@ -391,14 +403,23 @@ interface ActivityContextValue {
391
403
  params: Record<string, string>;
392
404
  query: Record<string, string>;
393
405
  data?: unknown;
394
- /** 스택 내 위치 (0 = root) */
406
+ /** 스택 내 위치 (0 = root). 퇴장 중이면 빠지기 전 위치, 보관 중이면 -1 */
395
407
  index: number;
396
408
  isTop: boolean;
409
+ /** keepAlive 로 보관 중인 페이지 (스택에서는 빠졌지만 마운트 유지) */
410
+ isCached: boolean;
411
+ /** 이 인스턴스가 새 data 로 재사용(보관본 되살리기·resetPush 재사용)된 횟수 */
412
+ revision: number;
397
413
  }
398
414
  /** 현재 페이지(Activity) 자신의 path·params·query·data */
399
415
  declare function useActivity(): ActivityContextValue;
400
416
  /** `/detail/:id` → `{ id }` */
401
417
  declare function useParams<TParams extends Record<string, string> = Record<string, string>>(): TParams;
418
+ /**
419
+ * 이 페이지 인스턴스가 새 data 로 재사용될 때마다 1회 호출: 보관본이 되살아날 때,
420
+ * resetPush 가 스택 안 인스턴스를 재사용할 때. 첫 마운트에는 호출하지 않는다
421
+ */
422
+ declare function useOnRevive(callback: (data: unknown) => void): void;
402
423
 
403
424
  interface PathMatch {
404
425
  params: Record<string, string>;
@@ -425,6 +446,10 @@ interface StackEntry {
425
446
  params: Record<string, string>;
426
447
  query: Record<string, string>;
427
448
  data?: unknown;
449
+ /** true 면 스택에서 빠져도 보관 목록(cached)에 남긴다 */
450
+ keepAlive?: boolean;
451
+ /** 기존 인스턴스를 새 data 로 재사용(REVIVE·RESET_PUSH)할 때마다 1씩 오른다. 없으면 0 */
452
+ revision?: number;
428
453
  }
429
454
 
430
455
  interface StackRouterContextValue {
@@ -442,6 +467,8 @@ interface StackRouterContextValue {
442
467
  push: (path: string, data?: unknown) => boolean;
443
468
  replace: (path: string, data?: unknown) => boolean;
444
469
  reset: (path: string, data?: unknown) => boolean;
470
+ /** 루트만 남기고 path 를 push 한다 (스택: [루트, path]) */
471
+ resetPush: (path: string, data?: unknown) => boolean;
445
472
  back: () => boolean;
446
473
  pop: (count?: number) => boolean;
447
474
  popTo: (path: string) => boolean;
@@ -449,6 +476,6 @@ interface StackRouterContextValue {
449
476
  forward: () => void;
450
477
  }
451
478
  declare const useStackRouter: () => StackRouterContextValue;
452
- declare const StackRouterProvider: ({ initialActivity, Activities, maxWidth, isShowHeader, enableDevTools, transition, duration, restoreStack, safeArea, onBackAtRoot, onNotFound, bridge, }: StackRouterProviderProps) => _emotion_react_jsx_runtime.JSX.Element;
479
+ declare const StackRouterProvider: ({ initialActivity, Activities, maxWidth, isShowHeader, enableDevTools, transition, duration, restoreStack, keepAliveLimit, maxMountedPages, safeArea, onBackAtRoot, onNotFound, bridge, }: StackRouterProviderProps) => _emotion_react_jsx_runtime.JSX.Element;
453
480
 
454
- export { type Activity, type ActivityContextValue, type AllowUrl, BACK_REQUEST_METHOD, BACK_TIMEOUT_MS, BRIDGE_ERROR_CODES, BRIDGE_NAMESPACE, BRIDGE_PROTOCOL_VERSION, BRIDGE_RESPONSE_METHOD, BRIDGE_TIMEOUT_MS, type BackRequestResult, BackRouter, type BridgeEnvelope, BridgeError, type BridgeErrorBody, type BridgeErrorCode, type BridgeHostCleanup, type BridgeHostKind, type BridgeRequestOptions, type BridgeResult, type BridgeTransport, type BridgeTransportOptions, type CreateStackRouterBridgeOptions, Direction, type DirectionType, FLUTTER_LEGACY_STACK_HANDLERS, FLUTTER_READY_EVENT, FLUTTER_UNIFIED_HANDLER, type FlutterInAppWebViewBridge, HistoryAction, type HistoryListener, type HistoryState, type InstallBridgeHostOptions, RN_BRIDGE_HANDLER, type RestoreStackPolicy, STACK_BRIDGE_METHODS, STACK_TRANSITION_MS, type StackBridgeMethod, type StackBridgeSyncOptions, type StackChangedPayload, StackDevRoadmap, type StackEntry, Header as StackHeader, type StackMeta, type StackPushPayload, type StackReplacePayload, type StackResetPayload, type StackRouterBridge, type StackRouterContextValue, type StackRouterHostHandlers, StackRouterProvider, type StackRouterProviderProps, type StackTransitionType, type VisiblePage, type WaitForBridgeHostOptions, WebViewBridgeClient, type WebViewBridgeClientOptions, WebViewBridgeProvider, type WebViewBridgeProviderProps, assertStackUrl, createBridgeEnvelope, createBridgeId, createBridgeResponse, createBridgeTransport, createStackRouterBridge, createWebViewBridgeClient, detectBridgeHost, emitBridgeEnvelope, findActivity, getStackRouterBridge, handleBridgeMessage, history, installBridgeHost, installStackRouterBridge, isBridgeEnvelope, isNativeBridgeHost, isSafeStackUrl, matchPath, parseBridgeMessage, parseQuery, resetStackRouterBridgeCache, serializeBridgeMessage, toStackPath, useActivity, useParams, useStackRouter, waitForBridgeHost };
481
+ export { type Activity, type ActivityContextValue, type AllowUrl, BACK_REQUEST_METHOD, BACK_TIMEOUT_MS, BRIDGE_ERROR_CODES, BRIDGE_NAMESPACE, BRIDGE_PROTOCOL_VERSION, BRIDGE_RESPONSE_METHOD, BRIDGE_TIMEOUT_MS, type BackRequestResult, BackRouter, type BridgeEnvelope, BridgeError, type BridgeErrorBody, type BridgeErrorCode, type BridgeHostCleanup, type BridgeHostKind, type BridgeRequestOptions, type BridgeResult, type BridgeTransport, type BridgeTransportOptions, type CreateStackRouterBridgeOptions, Direction, type DirectionType, FLUTTER_LEGACY_STACK_HANDLERS, FLUTTER_READY_EVENT, FLUTTER_UNIFIED_HANDLER, type FlutterInAppWebViewBridge, HistoryAction, type HistoryListener, type HistoryState, type InstallBridgeHostOptions, KEEP_ALIVE_LIMIT, RN_BRIDGE_HANDLER, type RestoreStackPolicy, STACK_BRIDGE_METHODS, STACK_TRANSITION_MS, type StackBridgeMethod, type StackBridgeSyncOptions, type StackChangedPayload, StackDevRoadmap, type StackEntry, Header as StackHeader, type StackMeta, type StackPushPayload, type StackReplacePayload, type StackResetPayload, type StackRouterBridge, type StackRouterContextValue, type StackRouterHostHandlers, StackRouterProvider, type StackRouterProviderProps, type StackTransitionType, type VisiblePage, type WaitForBridgeHostOptions, WebViewBridgeClient, type WebViewBridgeClientOptions, WebViewBridgeProvider, type WebViewBridgeProviderProps, assertStackUrl, createBridgeEnvelope, createBridgeId, createBridgeResponse, createBridgeTransport, createStackRouterBridge, createWebViewBridgeClient, detectBridgeHost, emitBridgeEnvelope, findActivity, getStackRouterBridge, handleBridgeMessage, history, installBridgeHost, installStackRouterBridge, isBridgeEnvelope, isNativeBridgeHost, isSafeStackUrl, matchPath, parseBridgeMessage, parseQuery, resetStackRouterBridgeCache, serializeBridgeMessage, toStackPath, useActivity, useOnRevive, useParams, useStackRouter, waitForBridgeHost };
package/dist/index.d.ts CHANGED
@@ -275,6 +275,8 @@ declare const STACK_TRANSITION_MS = 500;
275
275
  declare const BACK_TIMEOUT_MS = 1000;
276
276
  /** 브릿지 요청 응답 기본 타임아웃 */
277
277
  declare const BRIDGE_TIMEOUT_MS = 5000;
278
+ /** keepAlive 페이지 기본 최대 보관 수 (스택 안 keepAlive 포함) */
279
+ declare const KEEP_ALIVE_LIMIT = 5;
278
280
 
279
281
  interface StackBridgeSyncOptions {
280
282
  allowUrl?: AllowUrl;
@@ -287,6 +289,8 @@ interface Activity {
287
289
  /** 정적 경로 또는 동적 세그먼트 패턴 (`/detail/:id`) */
288
290
  path: string;
289
291
  element: React.ReactNode;
292
+ /** true 면 스택에서 빠져도 인스턴스(state)를 보관했다가 같은 path 로 돌아오면 되살린다 */
293
+ keepAlive?: boolean;
290
294
  }
291
295
  type StackTransitionType = "slide" | "fade" | "none";
292
296
  type RestoreStackPolicy = "with-root" | "top-only";
@@ -294,7 +298,7 @@ interface StackRouterProviderProps {
294
298
  initialActivity: Activity;
295
299
  Activities?: Activity[];
296
300
  maxWidth?: string;
297
- /** true면 상단에 `StackHeader` 렌더 */
301
+ /** true면 각 페이지 상단에 `StackHeader` 렌더 (페이지와 함께 전환) */
298
302
  isShowHeader?: boolean;
299
303
  /** 개발 시 스택 로드맵 오버레이 (기본: NODE_ENV === "development") */
300
304
  enableDevTools?: boolean;
@@ -303,6 +307,10 @@ interface StackRouterProviderProps {
303
307
  duration?: number;
304
308
  /** 새로고침·딥링크 진입 시 스택 복원 정책 (기본 "with-root") */
305
309
  restoreStack?: RestoreStackPolicy;
310
+ /** keepAlive 페이지 최대 보관 수 (기본 KEEP_ALIVE_LIMIT, 0 이면 보관 안 함) */
311
+ keepAliveLimit?: number;
312
+ /** 스택 top 에서부터 children 을 마운트할 최대 페이지 수 (기본 제한 없음, 1 미만은 1) */
313
+ maxMountedPages?: number;
306
314
  /** env(safe-area-inset-*) padding 적용 */
307
315
  safeArea?: boolean;
308
316
  /** 루트에서 back 했을 때 (앱 종료·WebView 닫기 위임) */
@@ -379,9 +387,13 @@ interface BackRouterProps {
379
387
  declare const BackRouter: ({ label }: BackRouterProps) => _emotion_react_jsx_runtime.JSX.Element;
380
388
 
381
389
  interface StackHeaderProps {
382
- /** 기본: 현재 path */
390
+ /** 기본: 이 헤더가 속한 페이지의 path */
383
391
  title?: React.ReactNode;
384
392
  }
393
+ /**
394
+ * 페이지 안에 있으면 그 페이지 기준(제목·back 버튼)으로 그려 페이지와 함께 전환된다.
395
+ * 페이지 밖이면 현재 top 기준.
396
+ */
385
397
  declare const Header: ({ title }: StackHeaderProps) => _emotion_react_jsx_runtime.JSX.Element;
386
398
 
387
399
  interface ActivityContextValue {
@@ -391,14 +403,23 @@ interface ActivityContextValue {
391
403
  params: Record<string, string>;
392
404
  query: Record<string, string>;
393
405
  data?: unknown;
394
- /** 스택 내 위치 (0 = root) */
406
+ /** 스택 내 위치 (0 = root). 퇴장 중이면 빠지기 전 위치, 보관 중이면 -1 */
395
407
  index: number;
396
408
  isTop: boolean;
409
+ /** keepAlive 로 보관 중인 페이지 (스택에서는 빠졌지만 마운트 유지) */
410
+ isCached: boolean;
411
+ /** 이 인스턴스가 새 data 로 재사용(보관본 되살리기·resetPush 재사용)된 횟수 */
412
+ revision: number;
397
413
  }
398
414
  /** 현재 페이지(Activity) 자신의 path·params·query·data */
399
415
  declare function useActivity(): ActivityContextValue;
400
416
  /** `/detail/:id` → `{ id }` */
401
417
  declare function useParams<TParams extends Record<string, string> = Record<string, string>>(): TParams;
418
+ /**
419
+ * 이 페이지 인스턴스가 새 data 로 재사용될 때마다 1회 호출: 보관본이 되살아날 때,
420
+ * resetPush 가 스택 안 인스턴스를 재사용할 때. 첫 마운트에는 호출하지 않는다
421
+ */
422
+ declare function useOnRevive(callback: (data: unknown) => void): void;
402
423
 
403
424
  interface PathMatch {
404
425
  params: Record<string, string>;
@@ -425,6 +446,10 @@ interface StackEntry {
425
446
  params: Record<string, string>;
426
447
  query: Record<string, string>;
427
448
  data?: unknown;
449
+ /** true 면 스택에서 빠져도 보관 목록(cached)에 남긴다 */
450
+ keepAlive?: boolean;
451
+ /** 기존 인스턴스를 새 data 로 재사용(REVIVE·RESET_PUSH)할 때마다 1씩 오른다. 없으면 0 */
452
+ revision?: number;
428
453
  }
429
454
 
430
455
  interface StackRouterContextValue {
@@ -442,6 +467,8 @@ interface StackRouterContextValue {
442
467
  push: (path: string, data?: unknown) => boolean;
443
468
  replace: (path: string, data?: unknown) => boolean;
444
469
  reset: (path: string, data?: unknown) => boolean;
470
+ /** 루트만 남기고 path 를 push 한다 (스택: [루트, path]) */
471
+ resetPush: (path: string, data?: unknown) => boolean;
445
472
  back: () => boolean;
446
473
  pop: (count?: number) => boolean;
447
474
  popTo: (path: string) => boolean;
@@ -449,6 +476,6 @@ interface StackRouterContextValue {
449
476
  forward: () => void;
450
477
  }
451
478
  declare const useStackRouter: () => StackRouterContextValue;
452
- declare const StackRouterProvider: ({ initialActivity, Activities, maxWidth, isShowHeader, enableDevTools, transition, duration, restoreStack, safeArea, onBackAtRoot, onNotFound, bridge, }: StackRouterProviderProps) => _emotion_react_jsx_runtime.JSX.Element;
479
+ declare const StackRouterProvider: ({ initialActivity, Activities, maxWidth, isShowHeader, enableDevTools, transition, duration, restoreStack, keepAliveLimit, maxMountedPages, safeArea, onBackAtRoot, onNotFound, bridge, }: StackRouterProviderProps) => _emotion_react_jsx_runtime.JSX.Element;
453
480
 
454
- export { type Activity, type ActivityContextValue, type AllowUrl, BACK_REQUEST_METHOD, BACK_TIMEOUT_MS, BRIDGE_ERROR_CODES, BRIDGE_NAMESPACE, BRIDGE_PROTOCOL_VERSION, BRIDGE_RESPONSE_METHOD, BRIDGE_TIMEOUT_MS, type BackRequestResult, BackRouter, type BridgeEnvelope, BridgeError, type BridgeErrorBody, type BridgeErrorCode, type BridgeHostCleanup, type BridgeHostKind, type BridgeRequestOptions, type BridgeResult, type BridgeTransport, type BridgeTransportOptions, type CreateStackRouterBridgeOptions, Direction, type DirectionType, FLUTTER_LEGACY_STACK_HANDLERS, FLUTTER_READY_EVENT, FLUTTER_UNIFIED_HANDLER, type FlutterInAppWebViewBridge, HistoryAction, type HistoryListener, type HistoryState, type InstallBridgeHostOptions, RN_BRIDGE_HANDLER, type RestoreStackPolicy, STACK_BRIDGE_METHODS, STACK_TRANSITION_MS, type StackBridgeMethod, type StackBridgeSyncOptions, type StackChangedPayload, StackDevRoadmap, type StackEntry, Header as StackHeader, type StackMeta, type StackPushPayload, type StackReplacePayload, type StackResetPayload, type StackRouterBridge, type StackRouterContextValue, type StackRouterHostHandlers, StackRouterProvider, type StackRouterProviderProps, type StackTransitionType, type VisiblePage, type WaitForBridgeHostOptions, WebViewBridgeClient, type WebViewBridgeClientOptions, WebViewBridgeProvider, type WebViewBridgeProviderProps, assertStackUrl, createBridgeEnvelope, createBridgeId, createBridgeResponse, createBridgeTransport, createStackRouterBridge, createWebViewBridgeClient, detectBridgeHost, emitBridgeEnvelope, findActivity, getStackRouterBridge, handleBridgeMessage, history, installBridgeHost, installStackRouterBridge, isBridgeEnvelope, isNativeBridgeHost, isSafeStackUrl, matchPath, parseBridgeMessage, parseQuery, resetStackRouterBridgeCache, serializeBridgeMessage, toStackPath, useActivity, useParams, useStackRouter, waitForBridgeHost };
481
+ export { type Activity, type ActivityContextValue, type AllowUrl, BACK_REQUEST_METHOD, BACK_TIMEOUT_MS, BRIDGE_ERROR_CODES, BRIDGE_NAMESPACE, BRIDGE_PROTOCOL_VERSION, BRIDGE_RESPONSE_METHOD, BRIDGE_TIMEOUT_MS, type BackRequestResult, BackRouter, type BridgeEnvelope, BridgeError, type BridgeErrorBody, type BridgeErrorCode, type BridgeHostCleanup, type BridgeHostKind, type BridgeRequestOptions, type BridgeResult, type BridgeTransport, type BridgeTransportOptions, type CreateStackRouterBridgeOptions, Direction, type DirectionType, FLUTTER_LEGACY_STACK_HANDLERS, FLUTTER_READY_EVENT, FLUTTER_UNIFIED_HANDLER, type FlutterInAppWebViewBridge, HistoryAction, type HistoryListener, type HistoryState, type InstallBridgeHostOptions, KEEP_ALIVE_LIMIT, RN_BRIDGE_HANDLER, type RestoreStackPolicy, STACK_BRIDGE_METHODS, STACK_TRANSITION_MS, type StackBridgeMethod, type StackBridgeSyncOptions, type StackChangedPayload, StackDevRoadmap, type StackEntry, Header as StackHeader, type StackMeta, type StackPushPayload, type StackReplacePayload, type StackResetPayload, type StackRouterBridge, type StackRouterContextValue, type StackRouterHostHandlers, StackRouterProvider, type StackRouterProviderProps, type StackTransitionType, type VisiblePage, type WaitForBridgeHostOptions, WebViewBridgeClient, type WebViewBridgeClientOptions, WebViewBridgeProvider, type WebViewBridgeProviderProps, assertStackUrl, createBridgeEnvelope, createBridgeId, createBridgeResponse, createBridgeTransport, createStackRouterBridge, createWebViewBridgeClient, detectBridgeHost, emitBridgeEnvelope, findActivity, getStackRouterBridge, handleBridgeMessage, history, installBridgeHost, installStackRouterBridge, isBridgeEnvelope, isNativeBridgeHost, isSafeStackUrl, matchPath, parseBridgeMessage, parseQuery, resetStackRouterBridgeCache, serializeBridgeMessage, toStackPath, useActivity, useOnRevive, useParams, useStackRouter, waitForBridgeHost };