rnxsim 0.1.458 → 0.1.460
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/cli/bridge-flow-runner.ts +13 -10
- package/cli/commands/inspect/actions.ts +20 -127
- package/cli/commands/inspect/core.ts +4 -19
- package/cli/commands/inspect/keyboard.ts +1 -0
- package/cli/commands/inspect/resolve-target.ts +3 -1
- package/cli/commands/inspect.ts +2 -0
- package/cli/drivers/playwright-sim-host.ts +24 -0
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +24 -3
- package/dist-lib/bridge-contract-input.mjs +22 -2
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +12 -7
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +26 -72
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +26 -72
- package/dist-lib/sdk.mjs +26 -72
- package/dist-lib/skills.cjs +756 -133
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/bridge-contract-input.ts +22 -2
- package/src/host/bridge-host.ts +14 -8
- package/src/sim-client.ts +14 -2
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.460 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -3848,120 +3848,270 @@ var init_supported_native_packages = __esm({
|
|
|
3848
3848
|
SUPPORTED_NATIVE_PACKAGE_NAMES = [
|
|
3849
3849
|
"@adobe/react-native-aepcore",
|
|
3850
3850
|
// coverage
|
|
3851
|
+
"@ankipro/react-native-file-open",
|
|
3852
|
+
// seam
|
|
3851
3853
|
"@aptabase/react-native",
|
|
3852
|
-
// coverage
|
|
3854
|
+
// seam+coverage
|
|
3855
|
+
"@attarchi/react-native-lottie-splash-screen",
|
|
3856
|
+
// seam
|
|
3857
|
+
"@bacons/apple-targets",
|
|
3858
|
+
// seam
|
|
3859
|
+
"@baronha/ting",
|
|
3860
|
+
// seam
|
|
3853
3861
|
"@bitdrift/react-native",
|
|
3854
3862
|
// coverage
|
|
3863
|
+
"@bittingz/expo-widgets",
|
|
3864
|
+
// seam
|
|
3865
|
+
"@braze/react-native-sdk",
|
|
3866
|
+
// seam
|
|
3867
|
+
"@bsky.app/expo-image-crop-tool",
|
|
3868
|
+
// seam
|
|
3855
3869
|
"@bsky.app/react-native-mmkv",
|
|
3856
|
-
// coverage
|
|
3870
|
+
// seam+coverage
|
|
3857
3871
|
"@bugfender/rn-bugfender",
|
|
3858
|
-
// coverage
|
|
3872
|
+
// seam+coverage
|
|
3859
3873
|
"@bugsnag/react-native",
|
|
3860
3874
|
// coverage
|
|
3861
3875
|
"@bugsnag/react-native-performance",
|
|
3862
3876
|
// coverage
|
|
3877
|
+
"@callstack/liquid-glass",
|
|
3878
|
+
// seam
|
|
3879
|
+
"@candlefinance/faster-image",
|
|
3880
|
+
// seam
|
|
3881
|
+
"@clerk/expo-passkeys",
|
|
3882
|
+
// seam
|
|
3883
|
+
"@computools/react-native-dynamic-app-icon",
|
|
3884
|
+
// seam
|
|
3863
3885
|
"@d11/react-native-fast-image",
|
|
3864
3886
|
// coverage
|
|
3887
|
+
"@dariyd/react-native-document-scanner",
|
|
3888
|
+
// seam
|
|
3865
3889
|
"@datadog/mobile-react-native",
|
|
3866
3890
|
// coverage
|
|
3891
|
+
"@dbkable/react-native-speech-to-text",
|
|
3892
|
+
// seam
|
|
3867
3893
|
"@dimaportenko/react-native-shadow-view",
|
|
3868
3894
|
// coverage
|
|
3895
|
+
"@domir/react-native-measure-text",
|
|
3896
|
+
// seam+coverage
|
|
3869
3897
|
"@dr.pogodin/react-native-fs",
|
|
3870
3898
|
// coverage
|
|
3899
|
+
"@expensify/react-native-background-task",
|
|
3900
|
+
// seam
|
|
3901
|
+
"@expensify/react-native-hybrid-app",
|
|
3902
|
+
// seam
|
|
3903
|
+
"@expo/app-integrity",
|
|
3904
|
+
// seam
|
|
3905
|
+
"@expo/dom-webview",
|
|
3906
|
+
// seam
|
|
3871
3907
|
"@expo/ui",
|
|
3872
3908
|
// preset+coverage
|
|
3873
3909
|
"@expo/ui/community/menu",
|
|
3874
3910
|
// coverage
|
|
3911
|
+
"@fugood/react-native-audio-pcm-stream",
|
|
3912
|
+
// seam
|
|
3875
3913
|
"@fullstory/react-native",
|
|
3876
|
-
// coverage
|
|
3914
|
+
// seam+coverage
|
|
3915
|
+
"@generac/react-native-local-network-permission",
|
|
3916
|
+
// seam
|
|
3917
|
+
"@hot-updater/react-native",
|
|
3918
|
+
// seam
|
|
3919
|
+
"@intercom/intercom-react-native",
|
|
3920
|
+
// seam
|
|
3877
3921
|
"@iterable/expo-plugin",
|
|
3878
3922
|
// coverage
|
|
3923
|
+
"@iterable/react-native-sdk",
|
|
3924
|
+
// seam
|
|
3925
|
+
"@joplin/react-native-alarm-notification",
|
|
3926
|
+
// seam
|
|
3927
|
+
"@journeyapps/react-native-quick-sqlite",
|
|
3928
|
+
// seam
|
|
3929
|
+
"@kesha-antonov/react-native-background-downloader",
|
|
3930
|
+
// seam
|
|
3931
|
+
"@lodev09/react-native-true-sheet",
|
|
3932
|
+
// seam
|
|
3933
|
+
"@logicwind/react-native-exit-app",
|
|
3934
|
+
// seam
|
|
3935
|
+
"@logicwind/react-native-matomo-tracker",
|
|
3936
|
+
// seam
|
|
3937
|
+
"@logicwind/react-native-status-bar-height",
|
|
3938
|
+
// seam
|
|
3939
|
+
"@lottiefiles/dotlottie-react-native",
|
|
3940
|
+
// seam
|
|
3941
|
+
"@mattermost/react-native-emm",
|
|
3942
|
+
// seam
|
|
3879
3943
|
"@mattermost/react-native-paste-input",
|
|
3880
3944
|
// coverage
|
|
3881
3945
|
"@mattermost/react-native-turbo-log",
|
|
3882
|
-
// coverage
|
|
3946
|
+
// seam+coverage
|
|
3947
|
+
"@mattermost/rnutils",
|
|
3948
|
+
// seam
|
|
3949
|
+
"@meedwire/react-native-image-rotate",
|
|
3950
|
+
// seam
|
|
3951
|
+
"@metamask/native-utils",
|
|
3952
|
+
// seam+coverage
|
|
3953
|
+
"@metamask/react-native-webview",
|
|
3954
|
+
// seam
|
|
3955
|
+
"@mhpdev/react-native-haptics",
|
|
3956
|
+
// seam
|
|
3957
|
+
"@mhpdev/react-native-speech",
|
|
3958
|
+
// seam
|
|
3883
3959
|
"@nandorojo/galeria",
|
|
3884
|
-
// preset+coverage
|
|
3960
|
+
// preset+seam+coverage
|
|
3885
3961
|
"@notifee/react-native",
|
|
3886
|
-
// coverage
|
|
3962
|
+
// seam+coverage
|
|
3963
|
+
"@nozbe/watermelondb",
|
|
3964
|
+
// seam
|
|
3887
3965
|
"@op-engineering/op-sqlite",
|
|
3888
3966
|
// coverage
|
|
3967
|
+
"@pnthach95/react-native-root-view-background",
|
|
3968
|
+
// seam
|
|
3889
3969
|
"@posthog/react-native-plugin",
|
|
3890
|
-
// preset+coverage
|
|
3970
|
+
// preset+seam+coverage
|
|
3971
|
+
"@preeternal/react-native-cookie-manager",
|
|
3972
|
+
// seam
|
|
3973
|
+
"@pusher/pusher-websocket-react-native",
|
|
3974
|
+
// seam
|
|
3975
|
+
"@pushpendersingh/react-native-otp-verify",
|
|
3976
|
+
// seam
|
|
3977
|
+
"@react-native-ai/apple",
|
|
3978
|
+
// seam
|
|
3891
3979
|
"@react-native-async-storage/async-storage",
|
|
3892
3980
|
// coverage
|
|
3981
|
+
"@react-native-camera-roll/camera-roll",
|
|
3982
|
+
// seam
|
|
3983
|
+
"@react-native-clipboard/clipboard",
|
|
3984
|
+
// seam
|
|
3893
3985
|
"@react-native-community/checkbox",
|
|
3894
3986
|
// coverage
|
|
3987
|
+
"@react-native-community/datetimepicker",
|
|
3988
|
+
// seam
|
|
3895
3989
|
"@react-native-community/geolocation",
|
|
3896
|
-
// coverage
|
|
3990
|
+
// seam+coverage
|
|
3897
3991
|
"@react-native-community/image-editor",
|
|
3898
|
-
// coverage
|
|
3992
|
+
// seam+coverage
|
|
3899
3993
|
"@react-native-community/masked-view",
|
|
3900
3994
|
// coverage
|
|
3901
3995
|
"@react-native-community/netinfo",
|
|
3902
|
-
// coverage
|
|
3996
|
+
// seam+coverage
|
|
3997
|
+
"@react-native-community/progress-view",
|
|
3998
|
+
// seam
|
|
3903
3999
|
"@react-native-community/slider",
|
|
3904
4000
|
// coverage
|
|
4001
|
+
"@react-native-cookies/cookies",
|
|
4002
|
+
// seam
|
|
3905
4003
|
"@react-native-documents/picker",
|
|
3906
4004
|
// coverage
|
|
4005
|
+
"@react-native-documents/viewer",
|
|
4006
|
+
// seam
|
|
3907
4007
|
"@react-native-firebase/analytics",
|
|
3908
4008
|
// coverage
|
|
3909
4009
|
"@react-native-firebase/app",
|
|
3910
|
-
// coverage
|
|
4010
|
+
// seam+coverage
|
|
4011
|
+
"@react-native-firebase/auth",
|
|
4012
|
+
// seam
|
|
3911
4013
|
"@react-native-firebase/crashlytics",
|
|
3912
|
-
// coverage
|
|
4014
|
+
// seam+coverage
|
|
4015
|
+
"@react-native-firebase/firestore",
|
|
4016
|
+
// seam
|
|
4017
|
+
"@react-native-firebase/functions",
|
|
4018
|
+
// seam
|
|
3913
4019
|
"@react-native-firebase/perf",
|
|
3914
4020
|
// coverage
|
|
4021
|
+
"@react-native-firebase/storage",
|
|
4022
|
+
// seam
|
|
3915
4023
|
"@react-native-masked-view/masked-view",
|
|
3916
4024
|
// preset+coverage
|
|
3917
4025
|
"@react-native-menu/menu",
|
|
3918
4026
|
// coverage
|
|
4027
|
+
"@react-native-ml-kit/barcode-scanning",
|
|
4028
|
+
// seam
|
|
4029
|
+
"@react-native-picker/picker",
|
|
4030
|
+
// seam
|
|
3919
4031
|
"@rn-org/react-native-shortcuts",
|
|
3920
|
-
// coverage
|
|
4032
|
+
// seam+coverage
|
|
3921
4033
|
"@rocket.chat/mobile-crypto",
|
|
3922
|
-
// coverage
|
|
4034
|
+
// seam+coverage
|
|
4035
|
+
"@roman.sytnyk/blur-app-in-recents",
|
|
4036
|
+
// seam
|
|
4037
|
+
"@rudderstack/rudder-integration-amplitude-react-native",
|
|
4038
|
+
// seam
|
|
3923
4039
|
"@rudderstack/rudder-integration-appcenter-react-native",
|
|
3924
|
-
// coverage
|
|
4040
|
+
// seam+coverage
|
|
4041
|
+
"@rudderstack/rudder-integration-braze-react-native",
|
|
4042
|
+
// seam
|
|
4043
|
+
"@rudderstack/rudder-integration-clevertap-react-native",
|
|
4044
|
+
// seam
|
|
4045
|
+
"@rudderstack/rudder-integration-facebook-react-native",
|
|
4046
|
+
// seam
|
|
4047
|
+
"@rudderstack/rudder-integration-singular-react-native",
|
|
4048
|
+
// seam
|
|
3925
4049
|
"@rudderstack/rudder-sdk-react-native",
|
|
3926
4050
|
// coverage
|
|
4051
|
+
"@sdcx/pull-to-refresh",
|
|
4052
|
+
// seam
|
|
3927
4053
|
"@segment/analytics-react-native",
|
|
3928
4054
|
// coverage
|
|
3929
4055
|
"@sentry/react-native",
|
|
3930
|
-
// coverage
|
|
4056
|
+
// seam+coverage
|
|
4057
|
+
"@shakebugs/react-native-shake",
|
|
4058
|
+
// seam
|
|
3931
4059
|
"@shopify/flash-list",
|
|
3932
4060
|
// coverage
|
|
3933
4061
|
"@shopify/react-native-performance",
|
|
3934
4062
|
// coverage
|
|
3935
4063
|
"@shopify/react-native-skia",
|
|
3936
4064
|
// preset+coverage
|
|
4065
|
+
"@simform_solutions/react-native-audio-waveform",
|
|
4066
|
+
// seam
|
|
4067
|
+
"@sparkfabrik/react-native-idfa-aaid",
|
|
4068
|
+
// seam
|
|
3937
4069
|
"@splicer97/react-native-mytracker",
|
|
3938
|
-
// coverage
|
|
4070
|
+
// seam+coverage
|
|
3939
4071
|
"@stripe/stripe-react-native",
|
|
3940
4072
|
// coverage
|
|
4073
|
+
"@thehale/react-native-keep-awake",
|
|
4074
|
+
// seam
|
|
4075
|
+
"@ua/react-native-airship",
|
|
4076
|
+
// seam
|
|
4077
|
+
"@universe/hashcash-native",
|
|
4078
|
+
// seam
|
|
4079
|
+
"@vonovak/react-native-theme-control",
|
|
4080
|
+
// seam
|
|
3941
4081
|
"@vxrn/native",
|
|
3942
|
-
// preset
|
|
4082
|
+
// preset+seam
|
|
3943
4083
|
"@walletconnect/react-native-compat",
|
|
3944
4084
|
// coverage
|
|
3945
4085
|
"@wwdrew/expo-android-shared-preferences",
|
|
3946
|
-
// coverage
|
|
4086
|
+
// seam+coverage
|
|
4087
|
+
"amazon-ivs-react-native-player",
|
|
4088
|
+
// seam
|
|
3947
4089
|
"appcenter",
|
|
3948
|
-
// coverage
|
|
4090
|
+
// seam+coverage
|
|
4091
|
+
"appcenter-analytics",
|
|
4092
|
+
// seam
|
|
3949
4093
|
"burnt",
|
|
3950
4094
|
// preset+coverage
|
|
4095
|
+
"customerio-reactnative",
|
|
4096
|
+
// seam
|
|
3951
4097
|
"expo",
|
|
3952
4098
|
// preset+coverage
|
|
4099
|
+
"expo-age-range",
|
|
4100
|
+
// seam
|
|
3953
4101
|
"expo-android-shared-preferences",
|
|
3954
|
-
// coverage
|
|
4102
|
+
// seam+coverage
|
|
4103
|
+
"expo-app-integrity",
|
|
4104
|
+
// seam
|
|
3955
4105
|
"expo-apple-authentication",
|
|
3956
|
-
// preset
|
|
4106
|
+
// preset+seam
|
|
3957
4107
|
"expo-application",
|
|
3958
4108
|
// visual-proof+coverage
|
|
3959
4109
|
"expo-asset",
|
|
3960
|
-
// preset+coverage
|
|
4110
|
+
// preset+seam+coverage
|
|
3961
4111
|
"expo-audio",
|
|
3962
|
-
// coverage
|
|
4112
|
+
// seam+coverage
|
|
3963
4113
|
"expo-av",
|
|
3964
|
-
// coverage
|
|
4114
|
+
// seam+coverage
|
|
3965
4115
|
"expo-background-fetch",
|
|
3966
4116
|
// visual-proof
|
|
3967
4117
|
"expo-background-task",
|
|
@@ -3975,59 +4125,69 @@ var init_supported_native_packages = __esm({
|
|
|
3975
4125
|
"expo-calendar",
|
|
3976
4126
|
// visual-proof
|
|
3977
4127
|
"expo-camera",
|
|
3978
|
-
// coverage
|
|
4128
|
+
// seam+coverage
|
|
3979
4129
|
"expo-cellular",
|
|
3980
4130
|
// visual-proof
|
|
3981
4131
|
"expo-clipboard",
|
|
3982
|
-
// preset+coverage
|
|
4132
|
+
// preset+seam+coverage
|
|
3983
4133
|
"expo-constants",
|
|
3984
4134
|
// preset+visual-proof+coverage
|
|
3985
4135
|
"expo-contacts",
|
|
3986
4136
|
// visual-proof
|
|
4137
|
+
"expo-core-spotlight",
|
|
4138
|
+
// seam
|
|
3987
4139
|
"expo-crypto",
|
|
3988
4140
|
// preset+coverage
|
|
3989
4141
|
"expo-dev-client",
|
|
3990
4142
|
// coverage
|
|
3991
4143
|
"expo-device",
|
|
3992
|
-
// coverage
|
|
4144
|
+
// seam+coverage
|
|
3993
4145
|
"expo-document-picker",
|
|
3994
|
-
// preset+coverage
|
|
4146
|
+
// preset+seam+coverage
|
|
3995
4147
|
"expo-file-system",
|
|
3996
|
-
// preset+coverage
|
|
4148
|
+
// preset+seam+coverage
|
|
3997
4149
|
"expo-font",
|
|
3998
|
-
// preset+coverage
|
|
4150
|
+
// preset+seam+coverage
|
|
3999
4151
|
"expo-gl",
|
|
4000
4152
|
// preset+coverage
|
|
4001
4153
|
"expo-glass-effect",
|
|
4002
4154
|
// preset+coverage
|
|
4003
4155
|
"expo-haptics",
|
|
4004
|
-
// preset+coverage
|
|
4156
|
+
// preset+seam+coverage
|
|
4157
|
+
"expo-hardware-buttons",
|
|
4158
|
+
// seam
|
|
4005
4159
|
"expo-ignore-battery-optimizations",
|
|
4006
4160
|
// coverage
|
|
4007
4161
|
"expo-image",
|
|
4008
|
-
// preset+visual-proof+coverage
|
|
4162
|
+
// preset+visual-proof+seam+coverage
|
|
4009
4163
|
"expo-image-manipulator",
|
|
4010
4164
|
// coverage
|
|
4011
4165
|
"expo-image-picker",
|
|
4012
|
-
// preset+coverage
|
|
4166
|
+
// preset+seam+coverage
|
|
4013
4167
|
"expo-insights",
|
|
4014
4168
|
// coverage
|
|
4015
4169
|
"expo-intent-launcher",
|
|
4016
4170
|
// visual-proof
|
|
4017
4171
|
"expo-keep-awake",
|
|
4018
4172
|
// coverage
|
|
4173
|
+
"expo-key-event",
|
|
4174
|
+
// seam
|
|
4019
4175
|
"expo-linear-gradient",
|
|
4020
4176
|
// preset+visual-proof+coverage
|
|
4021
4177
|
"expo-linking",
|
|
4022
|
-
// preset+coverage
|
|
4178
|
+
// preset+seam+coverage
|
|
4023
4179
|
"expo-local-authentication",
|
|
4024
|
-
// coverage
|
|
4180
|
+
// seam+coverage
|
|
4025
4181
|
"expo-localization",
|
|
4026
4182
|
// coverage
|
|
4027
4183
|
"expo-mail-composer",
|
|
4028
4184
|
// visual-proof
|
|
4185
|
+
"expo-maps",
|
|
4186
|
+
// seam
|
|
4187
|
+
"expo-media-control",
|
|
4188
|
+
// seam
|
|
4029
4189
|
"expo-media-library",
|
|
4030
|
-
// coverage
|
|
4190
|
+
// seam+coverage
|
|
4031
4191
|
"expo-mesh-gradient",
|
|
4032
4192
|
// coverage
|
|
4033
4193
|
"expo-modules-core",
|
|
@@ -4035,13 +4195,19 @@ var init_supported_native_packages = __esm({
|
|
|
4035
4195
|
"expo-network",
|
|
4036
4196
|
// preset+visual-proof+coverage
|
|
4037
4197
|
"expo-notifications",
|
|
4038
|
-
// preset+coverage
|
|
4198
|
+
// preset+seam+coverage
|
|
4199
|
+
"expo-passkey",
|
|
4200
|
+
// seam
|
|
4201
|
+
"expo-paste-input",
|
|
4202
|
+
// seam
|
|
4203
|
+
"expo-pip",
|
|
4204
|
+
// seam
|
|
4039
4205
|
"expo-print",
|
|
4040
4206
|
// visual-proof
|
|
4041
4207
|
"expo-screen-capture",
|
|
4042
4208
|
// visual-proof
|
|
4043
4209
|
"expo-screen-corner-radius",
|
|
4044
|
-
// coverage
|
|
4210
|
+
// seam+coverage
|
|
4045
4211
|
"expo-screen-orientation",
|
|
4046
4212
|
// visual-proof+coverage
|
|
4047
4213
|
"expo-secure-store",
|
|
@@ -4055,7 +4221,7 @@ var init_supported_native_packages = __esm({
|
|
|
4055
4221
|
"expo-speech",
|
|
4056
4222
|
// visual-proof
|
|
4057
4223
|
"expo-speech-recognition",
|
|
4058
|
-
// preset
|
|
4224
|
+
// preset+seam
|
|
4059
4225
|
"expo-splash-screen",
|
|
4060
4226
|
// visual-proof+coverage
|
|
4061
4227
|
"expo-sqlite",
|
|
@@ -4065,33 +4231,37 @@ var init_supported_native_packages = __esm({
|
|
|
4065
4231
|
"expo-symbols",
|
|
4066
4232
|
// coverage
|
|
4067
4233
|
"expo-system-ui",
|
|
4068
|
-
// coverage
|
|
4234
|
+
// seam+coverage
|
|
4069
4235
|
"expo-task-manager",
|
|
4070
4236
|
// visual-proof+coverage
|
|
4071
4237
|
"expo-testflight",
|
|
4072
|
-
// coverage
|
|
4238
|
+
// seam+coverage
|
|
4073
4239
|
"expo-tracking-transparency",
|
|
4074
4240
|
// visual-proof+coverage
|
|
4075
4241
|
"expo-updates",
|
|
4076
|
-
// preset+coverage
|
|
4242
|
+
// preset+seam+coverage
|
|
4077
4243
|
"expo-video",
|
|
4078
|
-
// visual-proof
|
|
4244
|
+
// visual-proof+seam
|
|
4245
|
+
"expo-video-metadata",
|
|
4246
|
+
// seam
|
|
4079
4247
|
"expo-video-thumbnails",
|
|
4080
4248
|
// visual-proof
|
|
4081
4249
|
"expo-web-browser",
|
|
4082
|
-
// preset
|
|
4250
|
+
// preset+seam
|
|
4251
|
+
"expo-widgets",
|
|
4252
|
+
// seam
|
|
4083
4253
|
"expo-winter-fetch",
|
|
4084
4254
|
// coverage
|
|
4085
4255
|
"expo-winter-formdata",
|
|
4086
4256
|
// coverage
|
|
4087
4257
|
"group-ib-fp",
|
|
4088
|
-
// coverage
|
|
4258
|
+
// seam+coverage
|
|
4089
4259
|
"gt-react-native",
|
|
4090
|
-
// coverage
|
|
4260
|
+
// seam+coverage
|
|
4091
4261
|
"jail-monkey",
|
|
4092
4262
|
// coverage
|
|
4093
4263
|
"lottie-react-native",
|
|
4094
|
-
// coverage
|
|
4264
|
+
// seam+coverage
|
|
4095
4265
|
"mixpanel-react-native",
|
|
4096
4266
|
// coverage
|
|
4097
4267
|
"newrelic-react-native-agent",
|
|
@@ -4099,205 +4269,477 @@ var init_supported_native_packages = __esm({
|
|
|
4099
4269
|
"posthog-react-native",
|
|
4100
4270
|
// preset+coverage
|
|
4101
4271
|
"posthog-react-native-session-replay",
|
|
4102
|
-
// preset+coverage
|
|
4272
|
+
// preset+seam+coverage
|
|
4273
|
+
"pushy-react-native",
|
|
4274
|
+
// seam
|
|
4103
4275
|
"react-native",
|
|
4104
4276
|
// preset+visual-proof+coverage
|
|
4277
|
+
"react-native-a11y-container",
|
|
4278
|
+
// seam
|
|
4105
4279
|
"react-native-actions-shortcuts",
|
|
4106
|
-
// coverage
|
|
4280
|
+
// seam+coverage
|
|
4107
4281
|
"react-native-adjust",
|
|
4108
4282
|
// coverage
|
|
4109
4283
|
"react-native-aes-crypto",
|
|
4110
|
-
// coverage
|
|
4284
|
+
// seam+coverage
|
|
4111
4285
|
"react-native-aes-gcm-crypto",
|
|
4112
|
-
// coverage
|
|
4286
|
+
// seam+coverage
|
|
4113
4287
|
"react-native-amplitude-analytics",
|
|
4114
4288
|
// coverage
|
|
4289
|
+
"react-native-app-auth",
|
|
4290
|
+
// seam
|
|
4291
|
+
"react-native-app-logs",
|
|
4292
|
+
// seam
|
|
4293
|
+
"react-native-app-review",
|
|
4294
|
+
// seam
|
|
4295
|
+
"react-native-appearance-control",
|
|
4296
|
+
// seam
|
|
4297
|
+
"react-native-apple-ads-attribution",
|
|
4298
|
+
// seam
|
|
4115
4299
|
"react-native-appsflyer",
|
|
4116
4300
|
// coverage
|
|
4301
|
+
"react-native-appstack-sdk",
|
|
4302
|
+
// seam
|
|
4117
4303
|
"react-native-audio-api",
|
|
4118
4304
|
// coverage
|
|
4305
|
+
"react-native-auto-skeleton",
|
|
4306
|
+
// seam
|
|
4307
|
+
"react-native-background-geolocation",
|
|
4308
|
+
// seam
|
|
4119
4309
|
"react-native-background-timer",
|
|
4120
|
-
// coverage
|
|
4310
|
+
// seam+coverage
|
|
4311
|
+
"react-native-background-upload",
|
|
4312
|
+
// seam
|
|
4313
|
+
"react-native-barcode-creator",
|
|
4314
|
+
// seam
|
|
4315
|
+
"react-native-blasted-image",
|
|
4316
|
+
// seam
|
|
4121
4317
|
"react-native-blob-util",
|
|
4122
4318
|
// coverage
|
|
4123
4319
|
"react-native-blue-crypto",
|
|
4124
|
-
// coverage
|
|
4320
|
+
// seam+coverage
|
|
4321
|
+
"react-native-bluetooth-status",
|
|
4322
|
+
// seam
|
|
4323
|
+
"react-native-blur-view",
|
|
4324
|
+
// seam
|
|
4325
|
+
"react-native-blurhash",
|
|
4326
|
+
// seam
|
|
4125
4327
|
"react-native-bootsplash",
|
|
4126
|
-
// preset+coverage
|
|
4328
|
+
// preset+seam+coverage
|
|
4127
4329
|
"react-native-bottom-tabs",
|
|
4128
4330
|
// preset+visual-proof
|
|
4129
4331
|
"react-native-branch",
|
|
4130
4332
|
// coverage
|
|
4333
|
+
"react-native-calendar-events",
|
|
4334
|
+
// seam
|
|
4335
|
+
"react-native-cashfree-pg-sdk",
|
|
4336
|
+
// seam
|
|
4337
|
+
"react-native-cloud-storage",
|
|
4338
|
+
// seam
|
|
4339
|
+
"react-native-cloud-store",
|
|
4340
|
+
// seam
|
|
4341
|
+
"react-native-compass-heading",
|
|
4342
|
+
// seam
|
|
4343
|
+
"react-native-compressor",
|
|
4344
|
+
// seam
|
|
4131
4345
|
"react-native-config",
|
|
4132
4346
|
// coverage
|
|
4347
|
+
"react-native-config-reader",
|
|
4348
|
+
// seam
|
|
4349
|
+
"react-native-contacts",
|
|
4350
|
+
// seam
|
|
4351
|
+
"react-native-context-menu-view",
|
|
4352
|
+
// seam
|
|
4353
|
+
"react-native-create-thumbnail",
|
|
4354
|
+
// seam
|
|
4355
|
+
"react-native-credentials-manager",
|
|
4356
|
+
// seam
|
|
4357
|
+
"react-native-dark-mode",
|
|
4358
|
+
// seam
|
|
4133
4359
|
"react-native-date-picker",
|
|
4134
|
-
// coverage
|
|
4360
|
+
// seam+coverage
|
|
4135
4361
|
"react-native-default-preference",
|
|
4136
|
-
// coverage
|
|
4362
|
+
// seam+coverage
|
|
4363
|
+
"react-native-detector",
|
|
4364
|
+
// seam
|
|
4365
|
+
"react-native-device-attest",
|
|
4366
|
+
// seam
|
|
4367
|
+
"react-native-device-country",
|
|
4368
|
+
// seam
|
|
4137
4369
|
"react-native-device-info",
|
|
4138
|
-
// coverage
|
|
4370
|
+
// seam+coverage
|
|
4371
|
+
"react-native-ease",
|
|
4372
|
+
// seam
|
|
4373
|
+
"react-native-edge-fade",
|
|
4374
|
+
// seam
|
|
4139
4375
|
"react-native-edge-to-edge",
|
|
4140
|
-
// coverage
|
|
4376
|
+
// seam+coverage
|
|
4377
|
+
"react-native-emoji-popup",
|
|
4378
|
+
// seam
|
|
4379
|
+
"react-native-enriched",
|
|
4380
|
+
// seam
|
|
4381
|
+
"react-native-enriched-markdown",
|
|
4382
|
+
// seam
|
|
4383
|
+
"react-native-events",
|
|
4384
|
+
// seam
|
|
4385
|
+
"react-native-exception-handler",
|
|
4386
|
+
// seam
|
|
4387
|
+
"react-native-exit-app",
|
|
4388
|
+
// seam
|
|
4389
|
+
"react-native-external-display",
|
|
4390
|
+
// seam
|
|
4141
4391
|
"react-native-fast-image",
|
|
4142
4392
|
// coverage
|
|
4143
4393
|
"react-native-fast-secure-storage",
|
|
4144
|
-
// coverage
|
|
4394
|
+
// seam+coverage
|
|
4145
4395
|
"react-native-fast-trie",
|
|
4146
|
-
// coverage
|
|
4396
|
+
// seam+coverage
|
|
4397
|
+
"react-native-fbsdk-next",
|
|
4398
|
+
// seam
|
|
4399
|
+
"react-native-fcm",
|
|
4400
|
+
// seam
|
|
4401
|
+
"react-native-file-logger",
|
|
4402
|
+
// seam
|
|
4403
|
+
"react-native-file-viewer",
|
|
4404
|
+
// seam
|
|
4405
|
+
"react-native-fingerprint-scanner",
|
|
4406
|
+
// seam
|
|
4147
4407
|
"react-native-fs",
|
|
4148
4408
|
// coverage
|
|
4149
4409
|
"react-native-gesture-handler",
|
|
4150
4410
|
// preset+coverage
|
|
4151
4411
|
"react-native-get-device-locale",
|
|
4152
|
-
// coverage
|
|
4412
|
+
// seam+coverage
|
|
4153
4413
|
"react-native-get-location",
|
|
4154
|
-
// coverage
|
|
4414
|
+
// seam+coverage
|
|
4155
4415
|
"react-native-get-random-values",
|
|
4156
4416
|
// coverage
|
|
4417
|
+
"react-native-google-places",
|
|
4418
|
+
// seam
|
|
4157
4419
|
"react-native-google-play-install-referrer",
|
|
4158
4420
|
// coverage
|
|
4159
4421
|
"react-native-gzip",
|
|
4160
|
-
// coverage
|
|
4422
|
+
// seam+coverage
|
|
4161
4423
|
"react-native-haptic-feedback",
|
|
4162
4424
|
// coverage
|
|
4163
4425
|
"react-native-headphone-detection",
|
|
4164
|
-
// coverage
|
|
4426
|
+
// seam+coverage
|
|
4427
|
+
"react-native-home-indicator",
|
|
4428
|
+
// seam
|
|
4429
|
+
"react-native-http-bridge-refurbished",
|
|
4430
|
+
// seam
|
|
4165
4431
|
"react-native-idle-timer",
|
|
4166
|
-
// coverage
|
|
4432
|
+
// seam+coverage
|
|
4433
|
+
"react-native-image-colors",
|
|
4434
|
+
// seam
|
|
4167
4435
|
"react-native-image-picker",
|
|
4168
|
-
// coverage
|
|
4436
|
+
// seam+coverage
|
|
4169
4437
|
"react-native-image-size",
|
|
4170
|
-
// coverage
|
|
4438
|
+
// seam+coverage
|
|
4171
4439
|
"react-native-in-app-review",
|
|
4172
|
-
// coverage
|
|
4440
|
+
// seam+coverage
|
|
4441
|
+
"react-native-inappbrowser-reborn",
|
|
4442
|
+
// seam
|
|
4443
|
+
"react-native-intercom",
|
|
4444
|
+
// seam
|
|
4445
|
+
"react-native-job-queue",
|
|
4446
|
+
// seam
|
|
4173
4447
|
"react-native-keep-awake",
|
|
4174
|
-
// coverage
|
|
4448
|
+
// seam+coverage
|
|
4175
4449
|
"react-native-key-command",
|
|
4176
|
-
// coverage
|
|
4450
|
+
// seam+coverage
|
|
4177
4451
|
"react-native-keyboard-controller",
|
|
4178
4452
|
// preset+visual-proof+coverage
|
|
4179
4453
|
"react-native-keychain",
|
|
4180
|
-
// coverage
|
|
4454
|
+
// seam+coverage
|
|
4455
|
+
"react-native-keyevent",
|
|
4456
|
+
// seam
|
|
4181
4457
|
"react-native-keys",
|
|
4182
4458
|
// coverage
|
|
4183
4459
|
"react-native-launch-arguments",
|
|
4184
4460
|
// coverage
|
|
4185
4461
|
"react-native-linear-gradient",
|
|
4186
4462
|
// coverage
|
|
4463
|
+
"react-native-linkedin-login",
|
|
4464
|
+
// seam
|
|
4187
4465
|
"react-native-localize",
|
|
4188
4466
|
// coverage
|
|
4467
|
+
"react-native-location",
|
|
4468
|
+
// seam
|
|
4469
|
+
"react-native-location-enabler",
|
|
4470
|
+
// seam
|
|
4471
|
+
"react-native-mail",
|
|
4472
|
+
// seam
|
|
4189
4473
|
"react-native-maps",
|
|
4190
4474
|
// preset+coverage
|
|
4475
|
+
"react-native-measure-text",
|
|
4476
|
+
// seam
|
|
4191
4477
|
"react-native-mixpanel",
|
|
4192
4478
|
// coverage
|
|
4193
4479
|
"react-native-mmkv",
|
|
4194
|
-
// preset+coverage
|
|
4480
|
+
// preset+seam+coverage
|
|
4195
4481
|
"react-native-mmkv-storage",
|
|
4196
4482
|
// coverage
|
|
4483
|
+
"react-native-month-year-picker",
|
|
4484
|
+
// seam
|
|
4485
|
+
"react-native-multiple-modals",
|
|
4486
|
+
// seam
|
|
4197
4487
|
"react-native-nano-icons",
|
|
4198
|
-
// coverage
|
|
4488
|
+
// seam+coverage
|
|
4489
|
+
"react-native-navigation",
|
|
4490
|
+
// seam
|
|
4199
4491
|
"react-native-nitro-buffer",
|
|
4200
|
-
// coverage
|
|
4492
|
+
// seam+coverage
|
|
4493
|
+
"react-native-nitro-device-info",
|
|
4494
|
+
// seam
|
|
4495
|
+
"react-native-nitro-fetch",
|
|
4496
|
+
// seam
|
|
4497
|
+
"react-native-nitro-geocoder",
|
|
4498
|
+
// seam
|
|
4499
|
+
"react-native-nitro-geolocation",
|
|
4500
|
+
// seam
|
|
4501
|
+
"react-native-nitro-image",
|
|
4502
|
+
// seam
|
|
4503
|
+
"react-native-nitro-modules",
|
|
4504
|
+
// seam
|
|
4505
|
+
"react-native-nitro-sound",
|
|
4506
|
+
// seam
|
|
4507
|
+
"react-native-nitro-sse",
|
|
4508
|
+
// seam
|
|
4201
4509
|
"react-native-nitro-text-decoder",
|
|
4202
|
-
// coverage
|
|
4510
|
+
// seam+coverage
|
|
4203
4511
|
"react-native-nitro-totp",
|
|
4204
|
-
// coverage
|
|
4512
|
+
// seam+coverage
|
|
4513
|
+
"react-native-nitro-web-image",
|
|
4514
|
+
// seam
|
|
4515
|
+
"react-native-nitro-websockets",
|
|
4516
|
+
// seam
|
|
4205
4517
|
"react-native-notification-badge",
|
|
4206
|
-
// coverage
|
|
4518
|
+
// seam+coverage
|
|
4519
|
+
"react-native-notification-sounds",
|
|
4520
|
+
// seam
|
|
4521
|
+
"react-native-notifications",
|
|
4522
|
+
// seam
|
|
4523
|
+
"react-native-ometria",
|
|
4524
|
+
// seam
|
|
4525
|
+
"react-native-onesignal",
|
|
4526
|
+
// seam
|
|
4527
|
+
"react-native-orientation-director",
|
|
4528
|
+
// seam
|
|
4529
|
+
"react-native-orientation-locker",
|
|
4530
|
+
// seam
|
|
4531
|
+
"react-native-orientation-manager",
|
|
4532
|
+
// seam
|
|
4533
|
+
"react-native-orientation-turbo",
|
|
4534
|
+
// seam
|
|
4535
|
+
"react-native-os",
|
|
4536
|
+
// seam
|
|
4537
|
+
"react-native-ota-hot-update",
|
|
4538
|
+
// seam
|
|
4207
4539
|
"react-native-pager-view",
|
|
4208
4540
|
// preset+visual-proof
|
|
4541
|
+
"react-native-palette-full",
|
|
4542
|
+
// seam
|
|
4209
4543
|
"react-native-pdf",
|
|
4210
4544
|
// coverage
|
|
4545
|
+
"react-native-pdf-from-image",
|
|
4546
|
+
// seam
|
|
4547
|
+
"react-native-pdf-light",
|
|
4548
|
+
// seam
|
|
4549
|
+
"react-native-performance-limiter",
|
|
4550
|
+
// seam
|
|
4211
4551
|
"react-native-permissions",
|
|
4212
|
-
// coverage
|
|
4552
|
+
// seam+coverage
|
|
4213
4553
|
"react-native-photo-manipulator",
|
|
4214
|
-
// coverage
|
|
4554
|
+
// seam+coverage
|
|
4555
|
+
"react-native-pkce-challenge",
|
|
4556
|
+
// seam
|
|
4557
|
+
"react-native-print",
|
|
4558
|
+
// seam
|
|
4559
|
+
"react-native-pulsar",
|
|
4560
|
+
// seam
|
|
4215
4561
|
"react-native-purchases",
|
|
4216
|
-
// preset+coverage
|
|
4562
|
+
// preset+seam+coverage
|
|
4217
4563
|
"react-native-pure-jwt",
|
|
4218
|
-
// coverage
|
|
4564
|
+
// seam+coverage
|
|
4219
4565
|
"react-native-quick-actions",
|
|
4220
|
-
// coverage
|
|
4566
|
+
// seam+coverage
|
|
4221
4567
|
"react-native-quick-base64",
|
|
4222
|
-
// coverage
|
|
4568
|
+
// seam+coverage
|
|
4223
4569
|
"react-native-quick-crypto",
|
|
4224
|
-
// coverage
|
|
4570
|
+
// seam+coverage
|
|
4225
4571
|
"react-native-randombytes",
|
|
4226
|
-
// coverage
|
|
4572
|
+
// seam+coverage
|
|
4573
|
+
"react-native-rate",
|
|
4574
|
+
// seam
|
|
4575
|
+
"react-native-rate-app",
|
|
4576
|
+
// seam
|
|
4227
4577
|
"react-native-reanimated",
|
|
4228
4578
|
// preset+visual-proof+coverage
|
|
4579
|
+
"react-native-receive-sharing-intent",
|
|
4580
|
+
// seam
|
|
4581
|
+
"react-native-record-screen",
|
|
4582
|
+
// seam
|
|
4229
4583
|
"react-native-restart",
|
|
4230
4584
|
// coverage
|
|
4231
4585
|
"react-native-restart-newarch",
|
|
4232
4586
|
// coverage
|
|
4587
|
+
"react-native-rsa-native",
|
|
4588
|
+
// seam
|
|
4233
4589
|
"react-native-rsa-signer",
|
|
4234
|
-
// coverage
|
|
4590
|
+
// seam+coverage
|
|
4591
|
+
"react-native-safari-view",
|
|
4592
|
+
// seam
|
|
4235
4593
|
"react-native-safe-area-context",
|
|
4236
4594
|
// preset+visual-proof+coverage
|
|
4237
4595
|
"react-native-screen-corner-radius",
|
|
4238
|
-
// coverage
|
|
4596
|
+
// seam+coverage
|
|
4239
4597
|
"react-native-screens",
|
|
4240
4598
|
// preset+visual-proof+coverage
|
|
4599
|
+
"react-native-screenshot-aware",
|
|
4600
|
+
// seam
|
|
4241
4601
|
"react-native-securerandom",
|
|
4242
|
-
// coverage
|
|
4602
|
+
// seam+coverage
|
|
4243
4603
|
"react-native-settings",
|
|
4244
|
-
// coverage
|
|
4604
|
+
// seam+coverage
|
|
4605
|
+
"react-native-sfsymbols",
|
|
4606
|
+
// seam
|
|
4607
|
+
"react-native-shake",
|
|
4608
|
+
// seam
|
|
4245
4609
|
"react-native-share",
|
|
4246
|
-
// coverage
|
|
4610
|
+
// seam+coverage
|
|
4611
|
+
"react-native-shared-group-preferences",
|
|
4612
|
+
// seam
|
|
4247
4613
|
"react-native-shiki-engine",
|
|
4248
|
-
// coverage
|
|
4614
|
+
// seam+coverage
|
|
4615
|
+
"react-native-signature-capture",
|
|
4616
|
+
// seam
|
|
4617
|
+
"react-native-simple-biometrics",
|
|
4618
|
+
// seam
|
|
4249
4619
|
"react-native-simple-toast",
|
|
4250
4620
|
// coverage
|
|
4251
4621
|
"react-native-smart-splash-screen",
|
|
4252
|
-
// coverage
|
|
4622
|
+
// seam+coverage
|
|
4623
|
+
"react-native-snackbar",
|
|
4624
|
+
// seam
|
|
4625
|
+
"react-native-social-share",
|
|
4626
|
+
// seam
|
|
4627
|
+
"react-native-sound",
|
|
4628
|
+
// seam
|
|
4629
|
+
"react-native-sound-player",
|
|
4630
|
+
// seam
|
|
4631
|
+
"react-native-speech-recognition-kit",
|
|
4632
|
+
// seam
|
|
4253
4633
|
"react-native-splash-screen",
|
|
4254
|
-
// coverage
|
|
4634
|
+
// seam+coverage
|
|
4635
|
+
"react-native-splash-view",
|
|
4636
|
+
// seam
|
|
4637
|
+
"react-native-spotlight-search",
|
|
4638
|
+
// seam
|
|
4639
|
+
"react-native-sqlite-2",
|
|
4640
|
+
// seam
|
|
4641
|
+
"react-native-stallion",
|
|
4642
|
+
// seam
|
|
4643
|
+
"react-native-store-age-signals-native-modules",
|
|
4644
|
+
// seam
|
|
4645
|
+
"react-native-store-review",
|
|
4646
|
+
// seam
|
|
4255
4647
|
"react-native-svg",
|
|
4256
4648
|
// preset+visual-proof+coverage
|
|
4257
4649
|
"react-native-system-bars",
|
|
4258
|
-
// coverage
|
|
4650
|
+
// seam+coverage
|
|
4651
|
+
"react-native-system-setting",
|
|
4652
|
+
// seam
|
|
4259
4653
|
"react-native-teleport",
|
|
4260
4654
|
// preset+coverage
|
|
4261
4655
|
"react-native-testfairy",
|
|
4262
|
-
// coverage
|
|
4656
|
+
// seam+coverage
|
|
4657
|
+
"react-native-text-input-mask",
|
|
4658
|
+
// seam
|
|
4659
|
+
"react-native-text-size",
|
|
4660
|
+
// seam
|
|
4661
|
+
"react-native-tiktok",
|
|
4662
|
+
// seam
|
|
4263
4663
|
"react-native-tiktok-business-sdk",
|
|
4264
4664
|
// coverage
|
|
4265
4665
|
"react-native-timezone",
|
|
4266
|
-
// coverage
|
|
4666
|
+
// seam+coverage
|
|
4667
|
+
"react-native-tooltip",
|
|
4668
|
+
// seam
|
|
4669
|
+
"react-native-touch-id",
|
|
4670
|
+
// seam
|
|
4671
|
+
"react-native-track-player",
|
|
4672
|
+
// seam
|
|
4673
|
+
"react-native-tts",
|
|
4674
|
+
// seam
|
|
4267
4675
|
"react-native-turbo-haptics",
|
|
4268
|
-
// coverage
|
|
4676
|
+
// seam+coverage
|
|
4677
|
+
"react-native-turbo-mock-location-detector",
|
|
4678
|
+
// seam
|
|
4679
|
+
"react-native-turbo-preferences",
|
|
4680
|
+
// seam
|
|
4269
4681
|
"react-native-uitextview",
|
|
4270
4682
|
// visual-proof+coverage
|
|
4271
4683
|
"react-native-ulid-jsi",
|
|
4272
|
-
// coverage
|
|
4684
|
+
// seam+coverage
|
|
4273
4685
|
"react-native-ux-cam",
|
|
4274
|
-
// coverage
|
|
4686
|
+
// seam+coverage
|
|
4275
4687
|
"react-native-vector-icons",
|
|
4276
|
-
// coverage
|
|
4688
|
+
// seam+coverage
|
|
4689
|
+
"react-native-version-check",
|
|
4690
|
+
// seam
|
|
4277
4691
|
"react-native-version-info",
|
|
4278
|
-
// coverage
|
|
4692
|
+
// seam+coverage
|
|
4279
4693
|
"react-native-version-number",
|
|
4280
|
-
// coverage
|
|
4694
|
+
// seam+coverage
|
|
4281
4695
|
"react-native-video",
|
|
4282
4696
|
// coverage
|
|
4697
|
+
"react-native-video-cache",
|
|
4698
|
+
// seam
|
|
4699
|
+
"react-native-video-duration",
|
|
4700
|
+
// seam
|
|
4701
|
+
"react-native-view-pdf",
|
|
4702
|
+
// seam
|
|
4283
4703
|
"react-native-vision-camera",
|
|
4284
4704
|
// coverage
|
|
4705
|
+
"react-native-vlc-media-player",
|
|
4706
|
+
// seam
|
|
4707
|
+
"react-native-vosk",
|
|
4708
|
+
// seam
|
|
4285
4709
|
"react-native-webgpu",
|
|
4286
4710
|
// preset
|
|
4287
4711
|
"react-native-webp-format",
|
|
4288
4712
|
// coverage
|
|
4289
4713
|
"react-native-webview",
|
|
4290
|
-
// preset+visual-proof
|
|
4714
|
+
// preset+visual-proof+seam
|
|
4715
|
+
"react-native-widget-picker",
|
|
4716
|
+
// seam
|
|
4717
|
+
"react-native-wifi-p2p",
|
|
4718
|
+
// seam
|
|
4291
4719
|
"react-native-worklets",
|
|
4292
4720
|
// preset+coverage
|
|
4293
4721
|
"react-native-xxhash",
|
|
4294
|
-
// coverage
|
|
4722
|
+
// seam+coverage
|
|
4723
|
+
"react-native-youtube",
|
|
4724
|
+
// seam
|
|
4725
|
+
"react-native-zip-archive",
|
|
4726
|
+
// seam
|
|
4727
|
+
"rive-react-native",
|
|
4728
|
+
// seam
|
|
4729
|
+
"rn-apple-healthkit",
|
|
4730
|
+
// seam
|
|
4731
|
+
"rn-date-format",
|
|
4732
|
+
// seam
|
|
4733
|
+
"rn-fade-wrapper",
|
|
4734
|
+
// seam
|
|
4295
4735
|
"rn-fetch-blob",
|
|
4296
4736
|
// coverage
|
|
4297
4737
|
"rollbar-react-native",
|
|
4298
|
-
// coverage
|
|
4299
|
-
"sift-react-native"
|
|
4300
|
-
// coverage
|
|
4738
|
+
// seam+coverage
|
|
4739
|
+
"sift-react-native",
|
|
4740
|
+
// seam+coverage
|
|
4741
|
+
"whisper.rn"
|
|
4742
|
+
// seam
|
|
4301
4743
|
];
|
|
4302
4744
|
}
|
|
4303
4745
|
});
|
|
@@ -4653,8 +5095,8 @@ var init_registry = __esm({
|
|
|
4653
5095
|
id: "sheets-and-modal-geometry",
|
|
4654
5096
|
usage: 2,
|
|
4655
5097
|
importance: 2,
|
|
4656
|
-
estimate: 0.
|
|
4657
|
-
rationale: "Initial detents, sheet geometry, corner radius, grabber, undimmed range and dismissal work.
|
|
5098
|
+
estimate: 0.95,
|
|
5099
|
+
rationale: "Initial detents, sheet geometry, corner radius, grabber, undimmed range and dismissal work. Numeric-detent dragging, nearest settling, content interception and larger-detent scrolling, selected geometry and dimming, collapse callbacks, and guarded dismissal close most interaction gaps. The remaining 5% covers velocity and spring fidelity, pointer cancellation, fit-to-content and non-numeric modes, numeric 1.0 native geometry, and expandsWhenScrolledToEdge."
|
|
4658
5100
|
},
|
|
4659
5101
|
{
|
|
4660
5102
|
id: "tabs-freeze-and-overlay",
|
|
@@ -4666,8 +5108,8 @@ var init_registry = __esm({
|
|
|
4666
5108
|
],
|
|
4667
5109
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-screens"],
|
|
4668
5110
|
note: "screen container, stack, header config, search bar, navigation props",
|
|
4669
|
-
working: "Screen, ScreenContainer, ScreenStack, enableFreeze/freezeEnabled with delayed React freeze, Android modal/pageSheet push fallback, Android statusBarHidden/statusBarStyle/navigationBarHidden traits, push/pop slide, replaceAnimation push/pop direction, zoom/fade/fade_from_bottom transitions, edge swipe-back, parallax behind-screen, large title collapse, header (back button, inline/large title, custom left/center/right/search bar subviews, native header bar buttons/menus/badges, crossfade), formSheet custom initial detents/corner radius/grabber/undimmed range and stacked sheets, useHeaderHeight, useTransitionProgress, FullWindowOverlay, SearchBar with stacked and iOS 26 automatic/inline/integrated/integratedCentered/integratedButton toolbar placement, Tabs.Host/Screen, lifecycle callbacks (onAppear/onDisappear/onWillAppear/onWillDisappear), onDismissed",
|
|
4670
|
-
missing: "
|
|
5111
|
+
working: "Screen, ScreenContainer, ScreenStack, enableFreeze/freezeEnabled with delayed React freeze, Android modal/pageSheet push fallback, Android statusBarHidden/statusBarStyle/navigationBarHidden traits, push/pop slide, replaceAnimation push/pop direction, zoom/fade/fade_from_bottom transitions, edge swipe-back, parallax behind-screen, large title collapse, header (back button, inline/large title, custom left/center/right/search bar subviews, native header bar buttons/menus/badges, crossfade), formSheet custom initial detents/corner radius/grabber/undimmed range, numeric-detent dragging and settling, eligible content scrolling, detent callbacks, guarded dismissal and stacked sheets, useHeaderHeight, useTransitionProgress, FullWindowOverlay, SearchBar with stacked and iOS 26 automatic/inline/integrated/integratedCentered/integratedButton toolbar placement, Tabs.Host/Screen, lifecycle callbacks (onAppear/onDisappear/onWillAppear/onWillDisappear), onDismissed",
|
|
5112
|
+
missing: "native velocity and spring fidelity, pointer cancellation, fit-to-content and non-numeric detents, numeric 1.0 native geometry, and expandsWhenScrolledToEdge remain incomplete or unverified"
|
|
4671
5113
|
}
|
|
4672
5114
|
]
|
|
4673
5115
|
},
|
|
@@ -4764,14 +5206,14 @@ var init_registry = __esm({
|
|
|
4764
5206
|
id: "filters-and-imperative-geometry",
|
|
4765
5207
|
usage: 1,
|
|
4766
5208
|
importance: 2,
|
|
4767
|
-
estimate: 0,
|
|
4768
|
-
rationale: "
|
|
5209
|
+
estimate: 0.25,
|
|
5210
|
+
rationale: "getTotalLength and getPointAtLength implement path metrics for paths and basic shapes, including curves, arcs, clamping and detached refs. This receives 25% of the grouped feature. Filters, native export, bounding boxes, matrices and point-in-fill/stroke remain unsupported; invalid-path points return zero where native returns NaN."
|
|
4769
5211
|
}
|
|
4770
5212
|
],
|
|
4771
5213
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-svg"],
|
|
4772
|
-
note: "CanvasKit rendering for shapes, text, XML, gradients, references, masks, clipping, and images; native SVG filters and geometry queries
|
|
4773
|
-
working: "Svg, Path, Circle, Rect, Line, Ellipse, Polygon, Polyline, G, Text, TSpan, TextPath shaped glyphs along referenced paths, Defs, Pattern fills, Marker geometry on paths/lines/polylines/polygons, LinearGradient and RadialGradient with objectBoundingBox/userSpaceOnUse coordinates, focal points and gradientTransform, Stop, Mask, ClipPath, Image, Use and Symbol references, SvgXml, SvgUri, SvgAst, SvgFromXml, SvgCss, parse, fetchText, camelCase, shape transforms, fill/stroke/opacity/dasharray, currentColor, viewBox scaling",
|
|
4774
|
-
missing: "native SVG filter components and toDataURL, hit-testing,
|
|
5214
|
+
note: "CanvasKit rendering for shapes, text, XML, gradients, references, masks, clipping, and images; path metrics are implemented; native SVG filters, export and other geometry queries remain unsupported",
|
|
5215
|
+
working: "Svg, Path, Circle, Rect, Line, Ellipse, Polygon, Polyline, G, Text, TSpan, TextPath shaped glyphs along referenced paths, Defs, Pattern fills, Marker geometry on paths/lines/polylines/polygons, LinearGradient and RadialGradient with objectBoundingBox/userSpaceOnUse coordinates, focal points and gradientTransform, Stop, Mask, ClipPath, Image, Use and Symbol references, SvgXml, SvgUri, SvgAst, SvgFromXml, SvgCss, parse, fetchText, camelCase, getTotalLength and getPointAtLength for Path, Line, Rect including rounded corners, Circle, Ellipse, Polygon and Polyline, shape transforms, fill/stroke/opacity/dasharray, currentColor, viewBox scaling",
|
|
5216
|
+
missing: "native SVG filter components and toDataURL, hit-testing, bounding-box, and matrix methods refuse calls; invalid-path points differ from native NaN; ForeignObject does not render; marker context paints remain unverified; TextPath advanced layout, per-glyph positioning and objectBoundingBox paints are unsupported; pattern non-scaling strokes use the tile matrix; no font or emoji fallback parity claim"
|
|
4775
5217
|
}
|
|
4776
5218
|
]
|
|
4777
5219
|
},
|
|
@@ -5038,14 +5480,14 @@ var init_registry = __esm({
|
|
|
5038
5480
|
id: "keyboard-native-views-and-toolbar",
|
|
5039
5481
|
usage: 1,
|
|
5040
5482
|
importance: 2,
|
|
5041
|
-
estimate: 0,
|
|
5042
|
-
rationale: "
|
|
5483
|
+
estimate: 0.55,
|
|
5484
|
+
rationale: "KeyboardExtender hosts persistent interactive content above the keyboard, reserves its measured height in the parent, reacts to resizing and enable changes, and takes precedence over named accessories. KeyboardToolbar.Group scopes focus navigation and focusDidSet coordinates. OverKeyboardView hosts interactive content in its show-time app or keyboard window with retained focus and real browser pointer delivery. These three workflows receive 55% of the grouped feature, retaining deductions for extender keyboard-frame metrics and exact native geometry, toolbar eligibility for hidden or zero-size inputs, and unverified native-window fidelity. Background effects and clipping remain absent."
|
|
5043
5485
|
}
|
|
5044
5486
|
],
|
|
5045
5487
|
capabilityCoverage: CAPABILITY_INVENTORY_PACKAGE_COVERAGE["react-native-keyboard-controller"],
|
|
5046
5488
|
note: "native bindings stubbed (KeyboardControllerNative, KeyboardEvents, FocusedInputEvents, WindowDimensionsEvents, KeyboardControllerView + sibling native views); upstream pure-JS components, hooks, animated module, and KeyboardAvoidingView resolve from node_modules unchanged",
|
|
5047
5489
|
working: "every upstream JS export runs through reanimated worklets; Android KeyboardGestureArea drives the existing keyboard owner through drag progress, velocity/distance settling, cancellation, focus retention, and cleanup; supported exports include KeyboardProvider, KeyboardAvoidingView, KeyboardStickyView, KeyboardAwareScrollView, KeyboardToolbar, KeyboardGestureArea, useReanimatedKeyboardAnimation, useKeyboardAnimation, useKeyboardHandler, useGenericKeyboardHandler, useKeyboardController, useKeyboardState, useKeyboardContext, useReanimatedFocusedInput, useFocusedInputHandler, useResizeMode, useWindowDimensions, KeyboardEvents, FocusedInputEvents, WindowDimensionsEvents resize events, KeyboardController (dismiss/setFocusTo/isVisible/state/preload/setInputMode/setDefaultMode), KeyboardControllerView, OverKeyboardView, KeyboardBackgroundView, KeyboardExtender, ClippingScrollView, KeyboardToolbarGroupView, and AndroidSoftInputModes",
|
|
5048
|
-
missing: "OverKeyboardView
|
|
5490
|
+
missing: "KeyboardBackgroundView and ClippingScrollView lack their native platform effects; OverKeyboardView native-window fidelity beyond the observed iOS browser cases remains unverified; KeyboardExtender does not include accessory height in keyboard-frame metrics and exact native geometry remains incomplete; toolbar focus eligibility excludes hidden or zero-size inputs that native iOS counts"
|
|
5049
5491
|
}
|
|
5050
5492
|
]
|
|
5051
5493
|
},
|
|
@@ -9181,10 +9623,11 @@ var init_registry = __esm({
|
|
|
9181
9623
|
stubType: "native",
|
|
9182
9624
|
versions: [
|
|
9183
9625
|
{
|
|
9184
|
-
range: ">=
|
|
9626
|
+
range: ">=0.4.0",
|
|
9185
9627
|
coverage: 0.65,
|
|
9186
|
-
note: "native seam for EnrichedMarkdownText/EnrichedMarkdown/EnrichedMarkdownTextInput generated host components; upstream JS wrapper and Streamdown integration run unchanged",
|
|
9187
|
-
|
|
9628
|
+
note: "native seam for the EnrichedMarkdownText/EnrichedMarkdown/EnrichedMarkdownTextInput generated host components; the upstream JS wrapper, its style normalization, and the Streamdown integration run unchanged",
|
|
9629
|
+
working: "markdown parsed and rendered into real text and view hosts with upstream's normalized markdownStyle applied: paragraphs, h1-h6 at their default sizes and colors, bold/italic/strikethrough/underline, inline code and code blocks, blockquotes, ordered and unordered lists, task-list markers, links with onLinkPress, thematic breaks, tables with upstream's header, cell padding, and alternating row colors, block and inline images, plus selectable text and the imperative command surface",
|
|
9630
|
+
missing: "MD4C parsing fidelity (markdown-to-jsx handles the grammar instead), so unusual constructs can differ; native selection menus, spoilers, and math are absent, and the editable rich-markdown commands are accepted without changing the buffer"
|
|
9188
9631
|
}
|
|
9189
9632
|
]
|
|
9190
9633
|
},
|
|
@@ -10277,6 +10720,175 @@ var init_registry = __esm({
|
|
|
10277
10720
|
}
|
|
10278
10721
|
]
|
|
10279
10722
|
},
|
|
10723
|
+
"whisper.rn": {
|
|
10724
|
+
category: "ML",
|
|
10725
|
+
stubType: "native",
|
|
10726
|
+
versions: [
|
|
10727
|
+
{
|
|
10728
|
+
range: ">=0.6.0",
|
|
10729
|
+
coverage: 0.3,
|
|
10730
|
+
note: "native-seam only: RNWhisper.install() mounts all fourteen JSI bindings so the package's own JS runs, but transcripts come from the host speech recognizer instead of a whisper model",
|
|
10731
|
+
working: "package load and JSI binding handshake, getConstants, context and VAD context init/release lifecycle, transcribeFile/transcribeData resolving TranscribeResult shapes, onProgress and onNewSegments callbacks, abortTranscribe, bench, toggleNativeLog, and RealtimeTranscriber delivering real text through the browser SpeechRecognition API",
|
|
10732
|
+
missing: "no whisper.cpp/ggml runtime, so the declared model file is never loaded \u2014 no CoreML or GPU acceleration, model-derived segment timings, token timestamps, tinydiarize, beam/temperature decoding options, language auto-detect, or real VAD speech probabilities"
|
|
10733
|
+
}
|
|
10734
|
+
]
|
|
10735
|
+
},
|
|
10736
|
+
"@fugood/react-native-audio-pcm-stream": {
|
|
10737
|
+
category: "Media",
|
|
10738
|
+
stubType: "native",
|
|
10739
|
+
versions: [
|
|
10740
|
+
{
|
|
10741
|
+
range: ">=1.0.0",
|
|
10742
|
+
coverage: 0.25,
|
|
10743
|
+
note: "native-seam only: the RNLiveAudioStream recorder lifecycle and data events run, but the frames carry silence because the worker has no microphone capture path",
|
|
10744
|
+
working: "the published AudioRecord wrapper unchanged \u2014 init stores sampleRate/channels/bitsPerSample/audioSource/bufferSize, start begins a steady 'data' cadence through NativeEventEmitter and starts the host speech recognizer, stop ends both, and each frame is base64 of the configured buffer size",
|
|
10745
|
+
missing: "frames are silence rather than microphone PCM, so amplitude, level metering, and waveform analysis read zero; wavFile writing and audioSource routing have no effect"
|
|
10746
|
+
}
|
|
10747
|
+
]
|
|
10748
|
+
},
|
|
10749
|
+
"react-native-edge-fade": {
|
|
10750
|
+
category: "UI Components",
|
|
10751
|
+
stubType: "native",
|
|
10752
|
+
versions: [
|
|
10753
|
+
{
|
|
10754
|
+
range: ">=0.1.0",
|
|
10755
|
+
coverage: 0.85,
|
|
10756
|
+
note: "native-seam only: the published JS wrapper runs unchanged over an EdgeFadeView host component that reproduces the native curve tables and all three fade modes",
|
|
10757
|
+
working: "fadeTop/fadeBottom/fadeLeft/fadeRight on all four edges at once, the curveTop/curveBottom/curveLeft/curveRight presets and comma-separated custom alpha stops sampled from the same tables as the native EdgeFadeCurves, mode='mask' (masked content), mode='overlay' (per-edge or shared overlayColor gradients), mode='blur' (a masked blur band with frostProgression shaping the ramp), fadeRadius corner clipping, and pass-through of every other View prop",
|
|
10758
|
+
missing: "frostSaturation and frostLift are accepted but ignored \u2014 there is no browser vibrancy filter behind the blur band, and the blur is a single Gaussian rather than the native progressive blur stack, so a blurred edge reads slightly flatter than on device"
|
|
10759
|
+
}
|
|
10760
|
+
]
|
|
10761
|
+
},
|
|
10762
|
+
"@metamask/native-utils": {
|
|
10763
|
+
category: "Auth & Payments",
|
|
10764
|
+
stubType: "native",
|
|
10765
|
+
versions: [
|
|
10766
|
+
{
|
|
10767
|
+
range: ">=0.2.0",
|
|
10768
|
+
coverage: 0.95,
|
|
10769
|
+
note: "native-seam only: the published JS marshalling wrapper runs unchanged over a NativeUtils nitro HybridObject that computes exactly what upstream documents its C++ side to compute",
|
|
10770
|
+
working: "all eight hybrid methods \u2014 multiply, toPublicKey and toPublicKeyFromBytes (secp256k1, compressed and uncompressed), getPublicKeyEd25519 and getPublicKeyEd25519FromBytes, keccak256FromBytes, pubToAddress (with the @ethereumjs/util sanitize branch), and hmacSha512 \u2014 each backed by the @noble implementation upstream states it is byte-identical to, so BIP32 derivation and address computation produce the same bytes as on device",
|
|
10771
|
+
missing: "the native C++ speedup itself: this is the @noble path metamask patches away for performance, so heavy HD-derivation loops run at JavaScript speed"
|
|
10772
|
+
}
|
|
10773
|
+
]
|
|
10774
|
+
},
|
|
10775
|
+
"@universe/hashcash-native": {
|
|
10776
|
+
category: "Networking",
|
|
10777
|
+
stubType: "native",
|
|
10778
|
+
versions: [
|
|
10779
|
+
{
|
|
10780
|
+
range: ">=0.1.0",
|
|
10781
|
+
coverage: 0.7,
|
|
10782
|
+
note: "native-seam only: the published wrapper runs unchanged over a Hashcash nitro HybridObject that searches the counter range with Web Crypto SHA-256",
|
|
10783
|
+
working: "findProof over the requested rangeStart/rangeSize (defaulting to the challenge maxProofLength), the leading-zero-byte difficulty test, the counter/hashBase64/attempts/timeMs result shape, undefined when the range is exhausted, and cancel stopping the search at the next batch boundary",
|
|
10784
|
+
missing: "the native multi-threaded solver, so a high-difficulty challenge takes far longer on the JavaScript SubtleCrypto path and cancellation only takes effect between 256-counter batches instead of immediately"
|
|
10785
|
+
}
|
|
10786
|
+
]
|
|
10787
|
+
},
|
|
10788
|
+
"react-native-config-reader": {
|
|
10789
|
+
category: "Device & Platform",
|
|
10790
|
+
stubType: "native",
|
|
10791
|
+
versions: [
|
|
10792
|
+
{
|
|
10793
|
+
range: ">=1.0.0",
|
|
10794
|
+
coverage: 0.4,
|
|
10795
|
+
note: "native-seam only: the package's two-line JS runs unchanged and finds an RNConfigReader module on both platforms, including the iOS BuildConfigs sub-object it dereferences at import",
|
|
10796
|
+
working: "module presence on both platforms so the import never throws, the iOS BuildConfigs branch, and the DEBUG/BUILD_TYPE fields every Android BuildConfig carries \u2014 answered truthfully for a preview build",
|
|
10797
|
+
missing: "the app's own generated BuildConfig fields: upstream reflects whatever gradle declared, which the browser cannot know, so any app-private flag reads back undefined exactly as it would in a build that never declared it"
|
|
10798
|
+
}
|
|
10799
|
+
]
|
|
10800
|
+
},
|
|
10801
|
+
"react-native-rsa-native": {
|
|
10802
|
+
category: "Auth & Payments",
|
|
10803
|
+
stubType: "native",
|
|
10804
|
+
versions: [
|
|
10805
|
+
{
|
|
10806
|
+
range: ">=2.0.0",
|
|
10807
|
+
coverage: 0.8,
|
|
10808
|
+
note: "native-seam only: the package's `const { RNRSA, RNRSAKeychain } = NativeModules` runs unchanged over real RSA \u2014 Web Crypto for keygen, OAEP, and signing, and BigInt for the PKCS#1 v1.5 encryption Web Crypto omits",
|
|
10809
|
+
working: "RNRSA generate/generateKeys, encrypt/decrypt and encrypt64/decrypt64, sign/verify and their 64 and withAlgorithm variants across the SHA-1/224/256/384/512 signing algorithms, PEM import and export; RNRSAKeychain generate, encrypt/decrypt, sign/verify, and deletePrivateKey against a keyTag",
|
|
10810
|
+
missing: "the OS keychain itself \u2014 keys live in an in-memory map, so they do not survive a reload and gain no Secure Enclave protection; EC keychain keys, generateCSR, and generateCSRWithEC throw an explicit unsupported error"
|
|
10811
|
+
}
|
|
10812
|
+
]
|
|
10813
|
+
},
|
|
10814
|
+
"@mattermost/rnutils": {
|
|
10815
|
+
category: "Device & Platform",
|
|
10816
|
+
stubType: "native",
|
|
10817
|
+
versions: [
|
|
10818
|
+
{
|
|
10819
|
+
range: ">=0.1.0",
|
|
10820
|
+
coverage: 0.45,
|
|
10821
|
+
note: "native-seam only: the published wrapper runs unchanged over an RNUtils TurboModule that answers window geometry for real and reports a clean unmanaged state elsewhere",
|
|
10822
|
+
working: "getWindowDimensions from the live tenant window and its dimension events, getConstants, the addListener/removeListeners bookkeeping, isRunningInSplitView (false/false), the orientation lock calls, getHasRegisteredLoad/setHasRegisteredLoad, and getRealFilePath/saveFile echoing the path back",
|
|
10823
|
+
missing: "app-group shared directories and database paths are empty strings, so shared-container reads find nothing; deleteDatabaseDirectory, renameDatabase, deleteEntitiesFile, createZipFile, the delivered-notification queries and removals, keyboard resize modes, and setNavigationBarColor are accepted and do nothing"
|
|
10824
|
+
}
|
|
10825
|
+
]
|
|
10826
|
+
},
|
|
10827
|
+
"@mattermost/react-native-emm": {
|
|
10828
|
+
category: "Device & Platform",
|
|
10829
|
+
stubType: "native",
|
|
10830
|
+
versions: [
|
|
10831
|
+
{
|
|
10832
|
+
range: ">=1.0.0",
|
|
10833
|
+
coverage: 0.35,
|
|
10834
|
+
note: "native-seam only: the published wrapper runs unchanged over an Emm TurboModule reporting the unmanaged, unsecured device state a browser preview actually has",
|
|
10835
|
+
working: "module load and getConstants, getManagedConfig returning an empty policy so the app takes its unmanaged branch, deviceSecureWith reporting no face/fingerprint/passcode, the listener bookkeeping, and setAppGroupId/openSecuritySettings/exitApp accepted without effect",
|
|
10836
|
+
missing: "no EMM policy controller, so a managed configuration is never delivered; authenticate rejects because there is no device credential prompt, and setBlurScreen/applyBlurEffect/removeBlurEffect do not obscure the app in the task switcher"
|
|
10837
|
+
}
|
|
10838
|
+
]
|
|
10839
|
+
},
|
|
10840
|
+
"@expensify/react-native-hybrid-app": {
|
|
10841
|
+
category: "Device & Platform",
|
|
10842
|
+
stubType: "native",
|
|
10843
|
+
versions: [
|
|
10844
|
+
{
|
|
10845
|
+
range: ">=0.1.0",
|
|
10846
|
+
coverage: 0.5,
|
|
10847
|
+
note: "native-seam only: the published wrapper runs unchanged over a ReactNativeHybridApp TurboModule that reports a standalone (non-hybrid) build, which is what a browser preview is",
|
|
10848
|
+
working: "the full Spec surface loads and every method matches its upstream return type \u2014 isHybridApp() is false so the bundle stays on its standalone branch instead of the legacy-shell path, getHybridAppSettings and getInitialURL resolve null, and the sign-in, sign-out, account-switch, onboarding, and listener calls are accepted",
|
|
10849
|
+
missing: "there is no second native shell to hand off to, so the legacy-app transition, its session and auth-token exchange, and closeReactNativeApp have no effect"
|
|
10850
|
+
}
|
|
10851
|
+
]
|
|
10852
|
+
},
|
|
10853
|
+
"expo-app-integrity": {
|
|
10854
|
+
category: "Device & Platform",
|
|
10855
|
+
stubType: "native",
|
|
10856
|
+
versions: [
|
|
10857
|
+
{
|
|
10858
|
+
range: ">=0.1.0",
|
|
10859
|
+
coverage: 0.7,
|
|
10860
|
+
note: "native-seam only \u2014 the legacy specifier for @expo/app-integrity, sharing its seam: the published wrapper runs unchanged; the reference iOS simulator reports isSupported=false, and every App Attest call rejects with the upstream ERR_APP_INTEGRITY_FEATURE_UNSUPPORTED code and message",
|
|
10861
|
+
working: "all nine public exports: isSupported=false; generateKeyAsync, attestKeyAsync, and generateAssertionAsync reject with the real iOS-simulator unsupported error; Android-only methods take the upstream wrapper platform-error or false branches on iOS",
|
|
10862
|
+
missing: "real App Attest keys, attestations, and assertions; Android Play Integrity tokens and hardware-backed key attestation"
|
|
10863
|
+
}
|
|
10864
|
+
]
|
|
10865
|
+
},
|
|
10866
|
+
"@domir/react-native-measure-text": {
|
|
10867
|
+
category: "UI Components",
|
|
10868
|
+
stubType: "native",
|
|
10869
|
+
versions: [
|
|
10870
|
+
{
|
|
10871
|
+
range: ">=0.1.0",
|
|
10872
|
+
coverage: 0.9,
|
|
10873
|
+
note: "native-seam only: the published wrapper runs unchanged over a ReactNativeMeasureText expo module whose synchronous measureWidth uses the same text measurement the layout engine uses, so a measured width matches what renders",
|
|
10874
|
+
working: "synchronous measureWidth(text, style) honouring fontFamily, fontSize, fontWeight, and letterSpacing; the older RNMeasureText TurboModule measure(texts, fontSize, width) with upstream\u2019s invalid_width/invalid_texts/invalid_fontSize rejections",
|
|
10875
|
+
missing: "allowFontScaling is accepted but has no OS text-size setting to scale by, and the legacy TurboModule multi-line heights come from a character-width approximation rather than real line breaking"
|
|
10876
|
+
}
|
|
10877
|
+
]
|
|
10878
|
+
},
|
|
10879
|
+
"@sparkfabrik/react-native-idfa-aaid": {
|
|
10880
|
+
category: "Analytics",
|
|
10881
|
+
stubType: "native",
|
|
10882
|
+
versions: [
|
|
10883
|
+
{
|
|
10884
|
+
range: ">=0.6.0",
|
|
10885
|
+
coverage: 0.5,
|
|
10886
|
+
note: "native-seam only: the published wrapper runs unchanged and both queries resolve the denied, no-identifier result \u2014 the same answer a device with tracking turned off gives",
|
|
10887
|
+
working: "getAdvertisingInfo and getAdvertisingInfoAndCheckAuthorization resolve { id: null, isAdTrackingLimited: true }, so callers take their tracking-disabled branch and keep ad properties off",
|
|
10888
|
+
missing: "no platform advertising identifier exists in the browser, so an IDFA or AAID is never returned and the iOS tracking-authorization prompt is never shown"
|
|
10889
|
+
}
|
|
10890
|
+
]
|
|
10891
|
+
},
|
|
10280
10892
|
"@react-native-community/progress-bar-android": {
|
|
10281
10893
|
category: "UI Components",
|
|
10282
10894
|
stubType: "native",
|
|
@@ -27120,7 +27732,7 @@ var init_bridge_host = __esm({
|
|
|
27120
27732
|
inflightScan = null;
|
|
27121
27733
|
static SCAN_FRESH_MS = 2e3;
|
|
27122
27734
|
constructor(opts = {}) {
|
|
27123
|
-
this.preferredPort = opts.port
|
|
27735
|
+
this.preferredPort = opts.port ?? DEFAULT_SOOTSIM_BRIDGE_PORT;
|
|
27124
27736
|
this.port = this.preferredPort;
|
|
27125
27737
|
this.shouldWriteLockfile = opts.writeLockfile === true;
|
|
27126
27738
|
this.shouldWriteDevLockfile = opts.writeDevLockfile === true;
|
|
@@ -27170,9 +27782,9 @@ var init_bridge_host = __esm({
|
|
|
27170
27782
|
for (let attempt = 0; attempt < this.portFallbackCount; attempt++) {
|
|
27171
27783
|
const candidate = this.preferredPort + attempt;
|
|
27172
27784
|
try {
|
|
27173
|
-
await this.bindOnce(candidate, options?.silent === true);
|
|
27174
|
-
this.effectivePort =
|
|
27175
|
-
this.port =
|
|
27785
|
+
const boundPort = await this.bindOnce(candidate, options?.silent === true);
|
|
27786
|
+
this.effectivePort = boundPort;
|
|
27787
|
+
this.port = boundPort;
|
|
27176
27788
|
this.startedAt = Date.now();
|
|
27177
27789
|
if (attempt > 0 && !options?.silent) {
|
|
27178
27790
|
process.stderr.write(
|
|
@@ -27181,7 +27793,7 @@ var init_bridge_host = __esm({
|
|
|
27181
27793
|
);
|
|
27182
27794
|
}
|
|
27183
27795
|
this.afterBind();
|
|
27184
|
-
return
|
|
27796
|
+
return boundPort;
|
|
27185
27797
|
} catch (err) {
|
|
27186
27798
|
const e = err;
|
|
27187
27799
|
if (e?.code !== "EADDRINUSE") {
|
|
@@ -27217,6 +27829,11 @@ var init_bridge_host = __esm({
|
|
|
27217
27829
|
server.once("error", onError);
|
|
27218
27830
|
server.listen(port, "127.0.0.1", () => {
|
|
27219
27831
|
if (settled) return;
|
|
27832
|
+
const address = server.address();
|
|
27833
|
+
if (!address || typeof address === "string") {
|
|
27834
|
+
onError(new Error("ws bridge has no bound TCP address"));
|
|
27835
|
+
return;
|
|
27836
|
+
}
|
|
27220
27837
|
settled = true;
|
|
27221
27838
|
server.removeListener("error", onError);
|
|
27222
27839
|
server.on("error", (err) => {
|
|
@@ -27232,7 +27849,7 @@ var init_bridge_host = __esm({
|
|
|
27232
27849
|
this.wss?.emit("connection", ws, req);
|
|
27233
27850
|
});
|
|
27234
27851
|
});
|
|
27235
|
-
resolve9();
|
|
27852
|
+
resolve9(address.port);
|
|
27236
27853
|
});
|
|
27237
27854
|
});
|
|
27238
27855
|
}
|
|
@@ -35356,7 +35973,9 @@ var init_bridge_flow_runner = __esm({
|
|
|
35356
35973
|
}
|
|
35357
35974
|
const matchesId = compile(${JSON.stringify(opts.id)})
|
|
35358
35975
|
const matchesText = compile(${JSON.stringify(opts.text)})
|
|
35359
|
-
const all = ((await test.queryAll({
|
|
35976
|
+
const all = ((await test.queryAll(${JSON.stringify(
|
|
35977
|
+
opts.id && !opts.childOf ? { idPattern: opts.id } : {}
|
|
35978
|
+
)})) || []).filter(
|
|
35360
35979
|
(n) => n && n.absolutePosition && n.layout,
|
|
35361
35980
|
)
|
|
35362
35981
|
let candidates = all.filter((n) =>
|
|
@@ -35510,8 +36129,10 @@ var init_bridge_flow_runner = __esm({
|
|
|
35510
36129
|
return element;
|
|
35511
36130
|
}
|
|
35512
36131
|
replayTargetForElement(opts, element, tapTarget) {
|
|
36132
|
+
const id = opts.id ?? tapTarget?.target?.id ?? element.id;
|
|
35513
36133
|
return {
|
|
35514
|
-
|
|
36134
|
+
nodeId: tapTarget?.target?.nodeId ?? element.nodeId,
|
|
36135
|
+
id: typeof id === "string" ? id : null,
|
|
35515
36136
|
testID: opts.id ?? tapTarget?.target?.testID ?? element.testID ?? null,
|
|
35516
36137
|
text: opts.text ?? tapTarget?.target?.text ?? tapTarget?.target?.accessibilityLabel ?? element.text ?? element.accessibilityLabel ?? null,
|
|
35517
36138
|
type: tapTarget?.target?.type ?? element.type ?? null
|
|
@@ -35571,6 +36192,8 @@ var init_bridge_flow_runner = __esm({
|
|
|
35571
36192
|
cy,
|
|
35572
36193
|
this.replayTargetForElement(opts, current, tapTarget)
|
|
35573
36194
|
);
|
|
36195
|
+
if (hit?.requestedTargetMatched === false)
|
|
36196
|
+
throw new Error(`tapOn refused: ${JSON.stringify(hit)}`);
|
|
35574
36197
|
if (hit?.hit === true) {
|
|
35575
36198
|
await sleep3(300);
|
|
35576
36199
|
if (!current.isTextInput) return;
|