Vigia

ترقية expo-router من 57.x إلى 58.x

مقارنة الواجهة العامة لـ expo-router بين 57.0.28 و58.0.20، محسوبة تلقائيًا من أنواع TypeScript. التوقيع المعدّل تغيير محتمل غير متوافق، وليس أمرًا مؤكدًا.

الملخص

مسارات الاستيراد المحذوفة15
الصادرات المحذوفة24
التوقيعات المعدّلة28
أعضاء الأصناف أو الواجهات المحذوفة0
أعضاء الأصناف أو الواجهات المعدّلة1
موقوفة حديثًا3
تغييرات المتطلبات (engines واعتماديات peer)10
صادرات جديدة54

مسارات الاستيراد المحذوفة

مسارات الاستيراد المحذوفة
expo-router/ui
expo-router/head
expo-router/html
expo-router/tabs
expo-router/stack
expo-router/drawer
expo-router/server
expo-router/js-tabs
expo-router/js-stack
expo-router/js-top-tabs
expo-router/native-stack
expo-router/testing-library
expo-router/react-navigation
expo-router/unstable-split-view
expo-router/unstable-native-tabs

الصادرات المحذوفة

importexportkindقبل
expo-routerPageRemovedinterfaceinterface
expo-routerAnalyticsEventtypePagePreloadedEvent | PageFocusedEvent | PageBlurredEvent | PageRemoved | ActionDispatchedEvent
expo-routerStackTitlePropstype{ children?: any; asChild?: boolean | undefined; style?: any; largeStyle?: any; large?: boolean | undefined; }
expo-routerPageBlurredEventinterfaceinterface
expo-routerPageFocusedEventinterfaceinterface
expo-routerStackHeaderPropsinterfaceinterface
expo-routerStackScreenPropsinterfaceinterface
expo-routerStackToolbarPropsinterfaceinterface
expo-routerPagePreloadedEventinterfaceinterface
expo-routerStackSearchBarPropsinterfaceinterface
expo-routerActionDispatchedEventinterfaceinterface
expo-routerStackScreenTitlePropstype{ children?: any; asChild?: boolean | undefined; style?: any; largeStyle?: any; large?: boolean | undefined; }
expo-routerStackToolbarIconPropstype{ src: ImageSourcePropType; renderingMode?: "template" | "original" | undefined; } | { sf: SFSymbol; } | { xcasset: string; renderingMode?: "template" | "original" | undefined; }
expo-routerStackToolbarMenuPropsinterfaceinterface
expo-routerStackToolbarViewPropsinterfaceinterface
expo-routerStackToolbarBadgePropsinterfaceinterface
expo-routerStackToolbarLabelPropsinterfaceinterface
expo-routerStackToolbarButtonPropsinterfaceinterface
expo-routerStackToolbarSpacerPropsinterfaceinterface
expo-routerunstable_navigationEventsvariable{ addListener: <EventType extends EventTypeName>(eventType: EventType, callback: (event: Payload<EventType>) => void) => () => void; emit: <EventType extends EventTypeName>(type: EventType, event: Payload<EventType>) => void; enable: () => void; isEnabled: () => boolean; }
expo-routerStackHeaderItemSharedPropsinterfaceinterface
expo-routerStackScreenBackButtonPropsinterfaceinterface
expo-routerStackToolbarMenuActionPropsinterfaceinterface
expo-routerStackToolbarSearchBarSlotPropsinterfaceinterface

التوقيعات المعدّلة

exportقبلبعد
expo-router · Slot(props: Omit<NavigatorProps<any>, "children">): any(props: Omit<NavigatorProps<any>, "children" | "activityEnabled" | "activityDefaultThreshold"> & { activityEnabled?: boolean | undefined; }): React.JSX.Element
expo-router · Tabs(props: ComponentProps<any>): anyany
expo-router · Navigator<T extends UseNavigationBuilderRouter = (options: StackRouterOptions) => Router<StackNavigationState<ParamListBase>, Action | StackActionType>>({ initialRouteName, screenOptions, children, router, routerOptions, unstable_screenErrorBoundary, }: NavigatorProps<T>): any<T extends UseNavigationBuilderRouter = (options: StackRouterOptions) => Omit<Router<StackNavigationState<ParamListBase>, CommonNavigationAction | StackActionType>, "getStateForAction"> & { getStateForAction(state: StackNavigationState<ParamListBase>, action: CommonNavigationAction | StackActionType, options: RouterConfigOptions): RouterActionHandling.Unhandled | RouterActionResult<StackNavigationState<ParamListBase>>; }>({ screenOptions, children, activityEnabled, activityDefaultThreshold, router, routerOptions, unstable_screenErrorBoundary, }: NavigatorProps<T>): any
expo-router · TabRouter(args: TabRouterOptions): Router<TabNavigationState<ParamListBase>, Action | TabActionType>(options: TabRouterOptions): Omit<Router<TabNavigationState<ParamListBase>, CommonNavigationAction | TabActionType>, "getStateForAction"> & { getStateForAction(state: TabNavigationState<ParamListBase>, action: CommonNavigationAction | TabActionType, options: RouterConfigOptions): RouterActionHandling.Unhandled | RouterActionResult<TabNavigationState<ParamListBase>>; }
expo-router · Unmatched(): any(): React.JSX.Element
expo-router · ResultStatePartial<Omit<Readonly<{ key: string; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type: string; stale: false; }>, "stale" | "routes">> & Readonly<{ stale?: true | undefined; routes: PartialRoute<Route<string, object | undefined>>[]; }> & { state?: ResultState | undefined; }Partial<Omit<Readonly<{ key: string; routeKeySeq: number; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type?: string | undefined; stale: false; }>, "routes" | "stale">> & Readonly<{ stale?: true | undefined; routes: PartialRoute<Route<string, object | undefined>>[]; }> & { state?: ResultState | undefined; }
expo-router · ScreenProps{ name?: string | undefined; redirect?: boolean | undefined; initialParams?: Record<string, any> | undefined; options?: TOptions | ((prop: { route: RouteProp<ParamListBase, string>; navigation: any; }) => TOptions) | undefined; listeners?: Partial<{ [EventName in keyof (TEventMap & EventMapCore<TState>)]: EventListenerCallback<TEventMap & EventMapCore<TState>, EventName, (TEventMap & EventMapCore<TState>)[EventName]["canPreventDefault"]>; }> | ((prop: { route: RouteProp<ParamListBase, string>; navigation: any; }) => Partial<{ [EventName in keyof (TEventMap & EventMapCore<TState>)]: EventListen…{ name?: string | undefined; options?: TOptions | ((prop: { route: DescriptorRouteProp<ParamListBase, string>; navigation: any; }) => TOptions) | undefined; listeners?: Partial<{ [EventName in keyof (TEventMap & EventMapCore<TState>)]: EventListenerCallback<TEventMap & EventMapCore<TState>, EventName, (TEventMap & EventMapCore<TState>)[EventName]["canPreventDefault"]>; }> | ((prop: { route: RouteProp<ParamListBase, string>; navigation: any; }) => Partial<{ [EventName in keyof (TEventMap & EventMapCore<TState>)]: EventListenerCallback<TEventMap & EventMapCore<TState>, EventName, (TEventMap & Ev…
expo-router · SitemapType{ contextKey: string; filename: string; href: string | HrefObject; isInitial: boolean; isInternal: boolean; isGenerated: boolean; children: SitemapType[]; }{ contextKey: string; filename: string; href: string | HrefObject; isInternal: boolean; isGenerated: boolean; children: SitemapType[]; }
expo-router · StackRouter(options: StackRouterOptions): Router<StackNavigationState<ParamListBase>, Action | StackActionType>(options: StackRouterOptions): Omit<Router<StackNavigationState<ParamListBase>, CommonNavigationAction | StackActionType>, "getStateForAction"> & { getStateForAction(state: StackNavigationState<ParamListBase>, action: CommonNavigationAction | StackActionType, options: RouterConfigOptions): RouterActionHandling.Unhandled | RouterActionResult<StackNavigationState<ParamListBase>>; }
expo-router · useRoutePath(): string | undefined(): string
expo-router · ThemeProvider({ value, children }: Props): any({ value, children }: Props): React.JSX.Element
expo-router · useNavigation<T = Omit<NavigationProp<RootParamList>, "getState"> & { getState(): Readonly<{ key: string; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type: string; stale: false; }> | undefined; }>(parent?: string | HrefObject | undefined): T<T = Omit<NavigationProp<RootParamList>, "getState"> & { getState(): Readonly<{ key: string; routeKeySeq: number; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type?: string | undefined; stale: false; }> | undefined; }>(parent?: string | HrefObject | undefined): T
expo-router · ImperativeRouter{ back: () => void; canGoBack: () => boolean; push: (href: string | HrefObject, options?: NavigationOptions | undefined) => void; navigate: (href: string | HrefObject, options?: NavigationOptions | undefined) => void; replace: (href: string | HrefObject, options?: NavigationOptions | undefined) => void; dismiss: (count?: number | undefined) => void; dismissTo: (href: string | HrefObject, options?: NavigationOptions | undefined) => void; dismissAll: () => void; canDismiss: () => boolean; setParams: <T extends RoutePath>(params: Partial<RouteInputParams<T>>) => void; reload: () => void; prefetch…{ back: (options?: TransitionOptions | undefined) => void; canGoBack: () => boolean; push: (href: string | HrefObject, options?: NavigationOptions | undefined) => void; navigate: (href: string | HrefObject, options?: NavigationOptions | undefined) => void; replace: (href: string | HrefObject, options?: NavigationOptions | undefined) => void; dismiss: (count?: number | undefined, options?: TransitionOptions | undefined) => void; dismissTo: (href: string | HrefObject, options?: NavigationOptions | undefined) => void; dismissAll: (options?: TransitionOptions | undefined) => void; canDismiss: () =…
expo-router · RouteInputParamsExtract<HrefObject, { pathname: T; }> extends never ? never : Extract<HrefInputParamsObject, { pathname: T; }>["params"]T extends string ? UnknownInputParams : never
expo-router · useRootNavigation(): NavigationContainerRef<RootParamList> | null(): NavigationContainerRef<ParamListBase> | null
expo-router · withLayoutContext<TOptions extends object, T extends ComponentType<any>, TState extends NavigationState, TEventMap extends EventMapBase>(Nav: T, processor?: ((options: ScreenProps[]) => ScreenProps[]) | undefined, useOnlyUserDefinedScreens?: boolean | undefined): any<TOptions extends object = Record<string, any>, T extends ComponentType<any> = ComponentType<any>, TState extends NavigationState = Readonly<{ key: string; routeKeySeq: number; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type?: string | undefined; stale: false; }>, TEventMap extends EventMapBase = EventMapBase>(Nav: T, processScreens?: ((screens: (ScreenProps<TOptions, TState, TEventMap> & { name: string; })[]) => (ScreenProps<TOptions, TState, TEventMap> & { name: string; })[]) | undefined): any
expo-router · TabNavigationStateOmit<Readonly<{ key: string; index: number; routeNames: Extract<keyof ParamList, string>[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamList, keyof ParamList>[]; type: string; stale: false; }>, "history"> & { type: "tab"; history: { type: "route"; key: string; params?: object | undefined; }[]; preloadedRouteKeys: string[]; }Omit<Readonly<{ key: string; routeKeySeq: number; index: number; routeNames: Extract<keyof ParamList, string>[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamList, keyof ParamList>[]; type?: string | undefined; stale: false; }>, "history"> & { type?: "tab" | undefined; history?: { type: "route"; key: string; params?: object | undefined; }[] | undefined; }
expo-router · UnknownOutputParams{ [x: string]: string | string[]; }{ [x: string]: string | string[] | undefined; }
expo-router · StackNavigationStateReadonly<{ key: string; index: number; routeNames: Extract<keyof ParamList, string>[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamList, keyof ParamList>[]; type: string; stale: false; }> & { type: "stack"; preloadedRoutes: NavigationRoute<ParamList, keyof ParamList>[]; }Readonly<{ key: string; routeKeySeq: number; index: number; routeNames: Extract<keyof ParamList, string>[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamList, keyof ParamList>[]; type?: string | undefined; stale: false; }> & { type?: "stack" | undefined; }
expo-router · NativeStackOptionsArgsNativeStackScreenProps<ParamList, RouteName, NavigatorID> & { theme: NativeTheme; }Omit<NativeStackScreenProps<ParamList, RouteName, NavigatorID>, "route"> & { route: DescriptorRouteProp<ParamList, RouteName>; theme: NativeTheme; }
expo-router · useRootNavigationState(): Readonly<{ key: string; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type: string; stale: false; }>(): Readonly<{ key: string; routeKeySeq: number; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type?: string | undefined; stale: false; }>
expo-router · NativeStackNavigationPropOmit<NavigationHelpersCommon<ParamList, StackNavigationState<ParamList>>, "getParent"> & { getParent<T = NavigationProp<ParamListBase, string, string | undefined, Readonly<{ key: string; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type: string; stale: false; }>, {}, {}> | undefined>(id?: NavigatorID | undefined): T; setOptions(options: Partial<NativeStackNavigationOptions>): void; } & NavigationHelpersRoute<ParamList, RouteName> & EventConsumer<NativeStackNavigationEventMap & EventMapCore<StackNavigationState<ParamList…Omit<NavigationHelpersCommon<ParamList, StackNavigationState<ParamList>>, "getParent"> & { getParent<T = NavigationProp<ParamListBase, string, string | undefined, Readonly<{ key: string; routeKeySeq: number; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type?: string | undefined; stale: false; }>, {}, {}> | undefined>(id?: NavigatorID | undefined): T; setOptions(options: Partial<NativeStackNavigationOptions>): void; } & NavigationHelpersRoute<ParamList, RouteName> & EventConsumer<NativeStackNavigationEventMap & EventMapC…
expo-router · IntegrateWithRouterOptions{ useOnlyUserDefinedScreens?: boolean | undefined; } & CreatePropsOption<State, CreateProps>CreatePropsOption<State, CreateProps> & { activityDefaultThreshold?: number | undefined; processState?: ((state: State, descriptors: PlaceholderDescriptorMap<NavigatorOptions>, describe: DescribePlaceholderRoute<NavigatorOptions>) => State) | undefined; processDescriptors?: ((descriptors: PlaceholderDescriptorMap<NavigatorOptions>, state: State, describe: DescribePlaceholderRoute<NavigatorOptions>) => PlaceholderDescriptorMap<NavigatorOptions>) | undefined; processScreens?: ((screens: (ScreenProps<NavigatorOptions, State, EventMap> & { name: string; })[]) => (ScreenProps<NavigatorOptions, Stat…
expo-router · unstable_integrateWithRouter<NavigatorOptions extends object, State extends NavigationState, EventMap extends StandardNavigatorEventMapBase, NavigatorProps extends object, RouterOptions extends DefaultRouterOptions, CreateProps extends object = object>(navigator: any, router: RouterFactory<State, Readonly<{ type: string; payload?: object | undefined; source?: string | undefined; target?: string | undefined; }>, RouterOptions>, ...[options]: IntegrateWithRouterOptionsTuple<State, NoInfer<CreateProps>>): any<NavigatorOptions extends object, State extends NavigationState, EventMap extends StandardNavigatorEventMapBase, NavigatorProps extends object, RouterOptions extends DefaultRouterOptions, CreateProps extends object = object>(navigator: any, router: RouterFactory<State, Readonly<{ type: string; payload?: object | undefined; source?: string | undefined; target?: string | undefined; }>, RouterOptions>, ...[options]: IntegrateWithRouterOptionsTuple<State, NoInfer<CreateProps>, NavigatorOptions, EventMap>): any
expo-router · ExperimentalStackNavigationPropOmit<NavigationHelpersCommon<ParamList, StackNavigationState<ParamList>>, "getParent"> & { getParent<T = NavigationProp<ParamListBase, string, string | undefined, Readonly<{ key: string; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type: string; stale: false; }>, {}, {}> | undefined>(id?: NavigatorID | undefined): T; setOptions(options: Partial<ExperimentalStackNavigationOptions>): void; } & NavigationHelpersRoute<ParamList, RouteName> & EventConsumer<ExperimentalStackNavigationEventMap & EventMapCore<StackNavigationSta…Omit<NavigationHelpersCommon<ParamList, StackNavigationState<ParamList>>, "getParent"> & { getParent<T = NavigationProp<ParamListBase, string, string | undefined, Readonly<{ key: string; routeKeySeq: number; index: number; routeNames: string[]; history?: unknown[] | undefined; routes: NavigationRoute<ParamListBase, string>[]; type?: string | undefined; stale: false; }>, {}, {}> | undefined>(id?: NavigatorID | undefined): T; setOptions(options: Partial<ExperimentalStackNavigationOptions>): void; } & NavigationHelpersRoute<ParamList, RouteName> & EventConsumer<ExperimentalStackNavigationEventMap…
expo-router · ExperimentalStackNavigationEventMap{ transitionStart: { data: { closing: boolean; }; }; transitionEnd: { data: { closing: boolean; }; }; gestureCancel: { data: undefined; }; }{ removePrevented: { data: { action: Readonly<{ type: string; payload?: object | undefined; source?: string | undefined; target?: string | undefined; }>; }; }; transitionStart: { data: { closing: boolean; }; }; transitionEnd: { data: { closing: boolean; }; }; gestureCancel: { data: undefined; }; }
expo-router · StandardUseNavigationBuilderOptionsDefaultRouterOptions<string> & ({ children: React.ReactNode; layout?: ((props: { state: State; navigation: NavigationHelpers<ParamListBase, {}>; descriptors: Record<string, Descriptor<NavigatorOptions, NavigationProp<ParamListBase, string, string | undefined, State, NavigatorOptions, EventMap & StandardNavigatorEventMapBase>, RouteProp<ParamListBase, string>>>; children: React.ReactNode; }) => React.ReactElement) | undefined; screenListeners?: Partial<{ [EventName in keyof (EventMap & StandardNavigatorEventMapBase & EventMapCore<State>)]: EventListenerCallback<EventMap & StandardNavigatorEvent…DefaultRouterOptions<string> & ({ children: React.ReactNode; activityEnabled?: (State extends { type?: "stack" | undefined; } ? number | boolean : boolean) | undefined; layout?: ((props: { state: State; navigation: NavigationHelpers<ParamListBase, {}>; descriptors: Record<string, Descriptor<NavigatorOptions, NavigationProp<ParamListBase, string, string | undefined, State, NavigatorOptions, EventMap>, RouteProp<ParamListBase, string>>>; children: React.ReactNode; }) => React.ReactElement) | undefined; screenListeners?: Partial<{ [EventName in keyof (EventMap & EventMapCore<State>)]: EventListen…
expo-router · unstable_createStandardRouterNavigator<NavigatorOptions extends object, State extends NavigationState, EventMap extends StandardNavigatorEventMapBase, NavigatorProps extends object, RouterOptions extends DefaultRouterOptions, CreateProps extends object = object>(NavigatorContent: ComponentType<any>, router: RouterFactory<State, Readonly<{ type: string; payload?: object | undefined; source?: string | undefined; target?: string | undefined; }>, RouterOptions>, ...options: IntegrateWithRouterOptionsTuple<State, NoInfer<CreateProps>>): any<NavigatorOptions extends object, State extends NavigationState, EventMap extends StandardNavigatorEventMapBase, NavigatorProps extends object, RouterOptions extends DefaultRouterOptions, CreateProps extends object = object>(NavigatorContent: ComponentType<any>, router: RouterFactory<State, Readonly<{ type: string; payload?: object | undefined; source?: string | undefined; target?: string | undefined; }>, RouterOptions>, ...options: IntegrateWithRouterOptionsTuple<State, NoInfer<CreateProps>, NavigatorOptions, EventMap>): any

أعضاء الأصناف أو الواجهات المحذوفة

لم يُكتشف شيء.

أعضاء الأصناف أو الواجهات المعدّلة

memberقبلبعد
LinkMenuProps.elementSize"small" | "auto" | "medium" | "large" | undefined"small" | "medium" | "large" | "auto" | undefined

موقوفة حديثًا

export@deprecated
expo-router · withLayoutContextUse `integrateWithRouter` instead.
expo-router · unstable_integrateWithRouterUse `integrateWithRouter` instead.
expo-router · unstable_createStandardRouterNavigatorUse `createStandardRouterNavigator` instead.

تغييرات المتطلبات (engines واعتماديات peer)

قبلبعد
peerDependencies.expo-linking^57.0.13^58.0.13
peerDependencies.@expo/log-box^57.0.4^58.0.12
peerDependencies.expo-constants^57.0.22^58.0.12
peerDependencies.@expo/metro-runtime^57.0.17^58.0.14
peerDependencies.react-native-screens^4.26.0^4.30.0 || ^5.0.0-alpha.3
peerDependencies.react-server-dom-webpack~19.0.4 || ~19.1.5 || ~19.2.4~19.0.4 || ~19.1.5 || ~19.2.4 || ~19.3.0
peerDependencies.@testing-library/react-native>= 13.2.0>= 14.0.0
peerDependencies.@expo/ui—^58.0.18
peerDependencies.expo-symbols—^58.0.4
peerDependencies.react-native-worklets—*
صادرات جديدة (54)
importexportkind
expo-routerRoutertype
expo-routerRouteSourcetype
expo-routerextendRouterfunction
expo-routerRouterFactorytype
expo-routerTabActionTypetype
expo-routerLocaleDirectiontype
expo-routerNativeStackViewfunction
expo-routerNavigationStatetype
expo-routerRouterExtensiontype
expo-routerStackActionTypetype
expo-routerisActionHandledfunction
expo-routerNavigationActiontype
expo-routerattachRouteStatefunction
expo-routerusePreventRemovefunction
expo-routerRouterActionResulttype
expo-routercreateBaseTabPropsfunction
expo-routerRouterActionContexttype
expo-routerRouterActionReducertype
expo-routerRouterConfigOptionstype
expo-routerextendRouterActionsfunction
expo-routerintegrateWithRouterfunction
expo-routerDefaultRouterOptionstype
expo-routerNativeStackViewStatetype
expo-routerPreventRemoveOptionstype
expo-routerRouterActionHandlingenum
expo-routerRouterPageMarkDetailinterface
expo-routercreateBaseStackPropsfunction
expo-routerunstable_performancevariable
expo-routerRouterPageBlurredMarktype
expo-routerRouterPageFocusedMarktype
expo-routerRouterPageRemovedMarktype
expo-routerRouterPerformanceMarktype
expo-routerStandardNavigatorEmittype
expo-routerCommonNavigationActiontype
expo-routerRouterActionMarkDetailinterface
expo-routerRouterExtensionContexttype
expo-routerRouterExtensionOptionstype
expo-routercreateNativeStackPropsfunction
expo-routerIsWithinNativeNavigatorvariable
expo-routerNavigationAwareActivityfunction
expo-routerRouterPagePreloadedMarktype
expo-routerNativeStackDescriptorMaptype
expo-routerNavigationTransitionModetype
expo-routerRouterActionEnqueuedMarktype
expo-routerunstable_useIsNavigatingfunction
expo-routerBaseRouterPerformanceMarkinterface
expo-routerRouterActionDispatchedMarktype
expo-routerRouterBrowserHistoryActiontype
expo-routerRouterPerformanceMarkByNametype
expo-routerStandardNavigatorDescriptorinterface
expo-routerenableLegacyHeaderAppearancefunction
expo-routerunstable_PerformanceObserverclass
expo-routercreateStandardRouterNavigatorfunction
expo-routerunstable_enablePerformanceIntegrationfunction

زوّد وكيل الذكاء الاصطناعي بهذه البيانات

Vigia خادم MCP مجاني: يتحقق وكيل البرمجة لديك من الإصدارات والتغييرات غير المتوافقة والثغرات قبل أن يكتب الشيفرة. بلا تسجيل ولا مفتاح API.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

أضِف إلى Cursorأضِف إلى VS Code★ نجمة على GitHub

أي عميل MCP آخر
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

مهارة للوكلاء (SKILL.md): تخبر الوكيل متى يستخدم Vigia · GitHub Action لطلبات السحب

الأسئلة الشائعة

ما التغييرات غير المتوافقة عند ترقية expo-router من 57 إلى 58؟

بين expo-router 57.0.28 و58.0.20 وجد Vigia عدد 24 من الصادرات المحذوفة، و28 من التوقيعات المعدّلة، و1 من أعضاء الأصناف أو الواجهات المحذوفة أو المعدّلة.

ما الذي أصبح موقوفًا في expo-router 58؟

عُلِّم 3 من الصادرات أو الأعضاء حديثًا على أنها موقوفة في expo-router 58.0.20.

للوكلاء

GET https://vigia.coredls.cloud/v1/packages/npm/expo-router/upgrade?from=57.0.28&to=58.0.20