Repository Analysis

expo/expo

An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.

1.9 Likely human-written View on GitHub
1.9
Adjusted Score
1.9
Raw Score
100%
Time Factor
2026-05-30
Last Push
49,762
Stars
TypeScript
Language
1,521,109
Lines of Code
14140
Files
2312
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 7HIGH 39MEDIUM 201LOW 2065

Pattern Findings

2312 matches across 16 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers1668 hits · 1687 pts
SeverityFileLineSnippet
LOWtools/bin/expotools.js104async function calculateSourceChecksumAsync() {
LOWtools/src/ProjectVersions.ts113export async function updateBundledVersionsAsync(patch: Record<string, string>): Promise<void> {
LOWtools/src/IOSSimulator.ts35export async function uninstallAppFromSimulatorAsync(
LOWtools/src/IOSSimulator.ts100export async function isSimulatorInstalledAsync(): Promise<boolean> {
LOWtools/src/IOSSimulator.ts122export async function queryFirstBootedSimulatorAsync(): Promise<SimulatorUdid | null> {
LOWtools/src/GitHub.ts21export async function getAuthenticatedUserAsync() {
LOWtools/src/GitHub.ts122export async function listPullRequestReviewsAsync(
LOWtools/src/GitHub.ts153export async function updatePullRequestReviewAsync(
LOWtools/src/GitHub.ts171export async function listPullRequestReviewCommentsAsync(pull_number: number, review_id: number) {
LOWtools/src/GitHub.ts184export async function deletePullRequestReviewCommentAsync(comment_id: number) {
LOWtools/src/GitHub.ts196export async function deleteAllPullRequestReviewCommentsAsync(
LOWtools/src/GitHub.ts213export async function requestPullRequestReviewersAsync(pull_number: number, reviewers: string[]) {
LOWtools/src/GitHub.ts346export async function getOrCreateReleaseAsync(
LOWtools/src/GitHub.ts439export async function listOpenPullRequestsAsync(options?: {
LOWtools/src/Workspace.ts130async function listWorkspaceProjectsAsync(): Promise<PnpmProjectListing[]> {
LOWtools/src/EASUpdate.ts21export async function setAuthAndPublishProjectWithEasCliAsync(
LOWtools/src/EASUpdate.ts52export async function publishProjectWithEasCliAsync(
LOWtools/src/FirebaseTestLab.ts34export async function buildLocalAndroidAndRunTestAsync(
LOWtools/src/ProjectTemplates.ts16export async function getAvailableProjectTemplatesAsync(): Promise<Package[]> {
LOWtools/src/ProjectTemplates.ts44export async function updateTemplateVersionsAsync(
LOWtools/src/ProjectTemplates.ts79function resolveTargetVersionRange(targetVersionRange: string, currentVersion: string) {
LOWtools/src/IOSSimulatorTestSuite.ts16export async function runTestSuiteOnIOSSimulatorAsync(simulatorId, archivePath, reportPath) {
LOWtools/src/Npm.ts86export async function downloadPackageTarballAsync(
LOWtools/src/Npm.ts242export async function grantReadWriteAccessAsync(
LOWtools/src/TasksRunner.ts324 function iterateThroughDependencies(task: Task<Args>) {
LOWtools/src/Linear.ts32export async function getOrCreateLabelAsync(
LOWtools/src/Linear.ts59export async function getTeamWorkflowStateAsync(
LOWtools/src/Directories.ts49export function getReactNativeSubmoduleDir(): string {
LOWtools/src/Directories.ts53export function getVersionedReactNativeIosDir(): string {
LOWtools/src/Transforms.ts42async function applyTransformsOnFileContentAsync(
LOWtools/src/Transforms.ts67function getFilteredContentTransforms(transforms: FileTransform[], filePath: string) {
LOWtools/src/Transforms.ts150export async function copyFileWithTransformsAsync(
LOWtools/src/GitHubActions.ts79export async function getLatestDispatchedWorkflowRunAsync(workflowId: number) {
LOWtools/src/GitHubActions.ts87export async function getJobsForWorkflowRunAsync(run_id: number) {
LOWtools/src/GitHubActions.ts99export async function dispatchWorkflowEventAsync(
LOWtools/src/GitHubActions.ts118export async function getWorkflowRunsForRepoAsync(
LOWtools/src/linting/SwiftLint.ts55function parseLintResultsFromJSONString(jsonString: string): LintViolation[] {
LOWtools/src/check-packages/scanDependenciesAsync.ts231function createTypescriptImportRef(
LOWtools/src/check-packages/checkDependenciesAsync.ts213function createExternalImportValidator(pkg: Package) {
LOWtools/src/promote-packages/helpers.ts53function printPackagesToPromoteInternal(parcels: Parcel[], headerText: string): void {
LOW…/src/promote-packages/tasks/selectPackagesToPromote.ts40async function promptForPackagesToPromoteAsync(parcels: Parcel[]): Promise<string[]> {
LOWtools/src/publish-packages/helpers.ts222export async function resolveReleaseTypeAndVersion(parcel: Parcel, options: CommandOptions) {
LOWtools/src/publish-packages/helpers.ts276export function recursivelyAccumulateReleaseTypes(
LOWtools/src/publish-packages/helpers.ts300export function highestReleaseTypeReducer(a: ReleaseType, b: ReleaseType): ReleaseType {
LOW…/src/publish-packages/tasks/updateWorkspaceProjects.ts147function shouldUpdateDependencyVersion(context: {
LOW…s/src/publish-packages/tasks/publishAndroidPackages.ts25async function cleanupStaleBuildDirectories(): Promise<void> {
LOW…s/src/publish-packages/tasks/publishAndroidPackages.ts181async function removeExistingPublications(pkg: Package) {
LOW…s/src/publish-packages/tasks/publishAndroidPackages.ts214function convertPackageToProjectName(packageName: string): string {
LOW…rc/publish-packages/tasks/grantTeamAccessToPackages.ts58function filterPackagesToGrantAccess(teamMembers: string[]) {
LOW…rc/publish-packages/tasks/grantTeamAccessToPackages.ts66function doesSomeoneHaveNoAccessToPackage(
LOWtools/src/publish-packages/tasks/commentOnIssuesTask.ts78async function generatePayloadForCommentatorAsync(
LOW…ols/src/publish-packages/tasks/loadRequestedParcels.ts115export async function createParcelsForGraphNodes(nodes: PackagesGraphNode[]): Promise<Set<Parcel>> {
LOW…ols/src/publish-packages/tasks/loadRequestedParcels.ts120export async function createParcelsForDependenciesOf(parcels: Set<Parcel>): Promise<Set<Parcel>> {
LOWtools/src/publish-packages/tasks/bundleIOSPrebuilds.ts53export async function ensureSupportedToolchainAsync(
LOW…s/src/publish-packages/tasks/updateProjectTemplates.ts22function resolveTargetVersionRange(targetVersionRange: string, currentVersion: string) {
LOW…ols/src/publish-packages/tasks/updateModuleTemplate.ts50async function updateTemplatePackageJsonAsync(
LOWtools/src/publish-packages/tasks/publishCanary.ts173async function getLatestRemoteSdkBranchAsync(): Promise<string | null> {
LOWtools/src/publish-packages/tasks/publishCanary.ts194async function getCurrentCanaryVersionSuffix() {
LOWtools/src/publish-packages/tasks/publishCanary.ts239function findNextAvailableCanaryVersion(
LOW…s/src/publish-packages/tasks/checkPackagesIntegrity.ts81async function shouldStopOnFailedIntegrityChecksAsync(): Promise<boolean> {
1608 more matches not shown…
Decorative Section Separators94 hits · 286 pts
SeverityFileLineSnippet
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb584 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb586 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb988 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb990 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1089 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1091 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1213 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1215 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1873 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1875 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2239 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2241 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2319 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2321 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb172 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb174 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb284 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb286 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb330 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb332 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb420 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb422 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb747 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb749 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb971 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb973 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1374 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1376 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1732 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1734 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1753 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1755 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1810 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1812 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2114 # ──────────────────────────────────────────────────────────────────────
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2116 # ──────────────────────────────────────────────────────────────────────
MEDIUM…ckages/expo-brownfield/e2e/scripts/add_xcframeworks.rb33# ── Cleanup ────────────────────────────────────────────────────────────────────
MEDIUM…ckages/expo-brownfield/e2e/scripts/add_xcframeworks.rb67# ── Add Local Swift Package ────────────────────────────────────────────────────
MEDIUM…ages/@expo/cli/metro-require/__tests__/require.test.ts2633 // ┌─────────┐ ┌─────────┐ ────▶ ┌─────────┐
MEDIUM…ages/@expo/cli/metro-require/__tests__/require.test.ts2635 // └─────────┘ └─────────┘ └─────────┘
MEDIUM…ages/@expo/cli/metro-require/__tests__/require.test.ts2639 // ┌─────────┐ ┌────────┐
MEDIUM…ages/@expo/cli/metro-require/__tests__/require.test.ts2641 // └─────────┘ └────────┘
MEDIUM…ages/@expo/cli/metro-require/__tests__/require.test.ts2732 // ┌───────────────────┐
MEDIUM…ages/@expo/cli/metro-require/__tests__/require.test.ts2734 // ┌───────┐ ┌───┐ ┌───┐ ┌───┐
MEDIUM…ages/@expo/cli/metro-require/__tests__/require.test.ts2736 // └───────┘ └───┘ └───┘ └───┘
MEDIUM…ages/@expo/cli/metro-require/__tests__/require.test.ts2738 // └─────────┘
MEDIUMpackages/create-expo-module/src/featureDetection.ts107 // ── Update brace depth ───────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx74// ─── tintColor ──────────────────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx90// ─── title ──────────────────────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx122// ─── titleColor ─────────────────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx147// ─── backgroundColor ────────────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx190// ─── hidden and visibility ──────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx216// ─── headerLeft/headerRight callbacks ───────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx277// ─── hideShadow ─────────────────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx319// ─── translucent ────────────────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx370// ─── backButtonDisplayMode ──────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx425// ─── backButtonInCustomView ─────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx443// ─── disableBackButtonMenu ──────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx459// ─── direction ──────────────────────────────────────────────────────────────────
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx469// ─── experimental_userInterfaceStyle ────────────────────────────────────────────
34 more matches not shown…
Over-Commented Block275 hits · 266 pts
SeverityFileLineSnippet
LOWtools/src/prebuilds/Utils.test.ts61 it('returns true when process.env.CI is empty string', () => {
LOWtools/src/prebuilds/SPMPackage.ts1021 // Must define with value "1" for C/C++/ObjC targets
LOWtools/src/prebuilds/Prebuilder.ts21// find a better way to ignore some packages that shouldn't be prebuilt (like interfaces).
LOWtools/src/prebuilds/Prebuilder.ts41 // 'expo-font',
LOWtools/src/prebuilds/Prebuilder.ts61 // 'expo-sharing',
LOWdocs/empty-polyfill.js1// Intentionally empty. Next.js bundles polyfills for APIs like Array.prototype.at,
LOWdocs/scripts/generate-markdown-pages-utils.ts701 // Turndown converts <p>, <div>, and <blockquote> to blocks with newlines, which breaks
LOWpackages/expo-dev-client/src/types.d.ts1// dev-client imports code that ends up using `react-native` globals, but it doesn't import `react-native` directly.
LOWpackages/expo-image-picker/ios/ImageUtils.swift21 // – with the crop *and* the correct visual orientation already baked in –
LOW…o-image-picker/ios/StatusBarVisibilityController.swift41// TODO: (@bbarthec) below is possible alternative
LOW…/VideoAssetTransport/VideoAssetTransportProvider.swift1/// Defines a public transport boundary for customizing how `expo-video` loads specific sources.
LOW…/VideoAssetTransport/VideoAssetTransportRegistry.swift1/// Stores and resolves ``VideoAssetTransportProvider`` instances used by `expo-video`.
LOW…video/ios/VideoAssetTransport/VideoAssetLoadPlan.swift1import AVKit
LOW…video/ios/VideoAssetTransport/VideoAssetLoadPlan.swift21 public let retainedObjects: [AnyObject]
LOWpackages/expo-file-system/src/pathUtilities/path.ts1// Copyright Joyent, Inc. and other Node contributors.
LOWpackages/expo-file-system/src/pathUtilities/url.ts1// Copyright Joyent, Inc. and other Node contributors.
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb1# Handles precompiled XCFramework module integration for Expo.
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb181 print_linking_summary
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb341
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb421 # Pod registration (called from autolinking_manager.rb)
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb461 podfile.pod(ext_pod[:pod_name], :podspec => ext_pod[:podspec_path])
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb481 # so registering a companion that depends on a skipped main pod would fail
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb581 condition['podName'] || condition['npmPackage'] || condition['podfileProperty']
LOW…modules-autolinking/scripts/ios/cocoapods/installer.rb61
LOW…modules-autolinking/scripts/ios/cocoapods/installer.rb161 end
LOW…nking/scripts/ios/cocoapods/user_project_integrator.rb21 # @note {TargetDefinition} without dependencies are skipped to prevent
LOWpackages/expo-modules-autolinking/src/memoize.ts1// expo-modules-autolinking has a few memoizable operations that we don't want to repeat.
LOWpackages/expo-gl/ios/EXGLContext.mm161 // Flush all the stuff
LOWpackages/expo-gl/common/pch.h1#pragma once
LOWpackages/expo-gl/common/EXPlatformUtils.h21#ifdef __ANDROID__
LOWpackages/expo-gl/common/EXJsiArgsTransform.h1#pragma once
LOWpackages/expo-gl/common/stb_image.h121
LOWpackages/expo-gl/common/stb_image.h141// unsigned char *data = stbi_load(filename, &x, &y, &n, 0);
LOWpackages/expo-gl/common/stb_image.h161// *channels_in_file otherwise. If desired_channels is non-zero,
LOWpackages/expo-gl/common/stb_image.h181// more user-friendly ones.
LOWpackages/expo-gl/common/stb_image.h201// Additionally, stb_image will reject image files that have any of their
LOWpackages/expo-gl/common/stb_image.h221// ===========================================================================
LOWpackages/expo-gl/common/stb_image.h241// - Small source code footprint ("easy to maintain")
LOWpackages/expo-gl/common/stb_image.h261// supported by the compiler. For ARM Neon support, you must explicitly
LOWpackages/expo-gl/common/stb_image.h281// stb_image supports loading HDR images in general, and currently the Radiance
LOWpackages/expo-gl/common/stb_image.h301//
LOWpackages/expo-gl/common/stb_image.h321// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per
LOWpackages/expo-gl/common/stb_image.h341// STBI_NO_PIC
LOWpackages/expo-gl/common/stb_image.h361// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater
LOWpackages/expo-gl/common/stb_image.h541
LOWpackages/expo-gl/common/stb_image.h561 #endif
LOWpackages/expo-gl/common/stb_image.h581
LOWpackages/expo-gl/common/stb_image.h601#ifndef STBI_ASSERT
LOWpackages/expo-gl/common/stb_image.h621#endif
LOWpackages/expo-gl/common/stb_image.h661#endif
LOWpackages/expo-gl/common/stb_image.h681#ifndef STBI_MALLOC
LOWpackages/expo-gl/common/stb_image.h701// but previous attempts to provide the SSE2 functions with runtime
LOWpackages/expo-gl/common/stb_image.h761#else // assume GCC-style if not VC++
LOWpackages/expo-gl/common/stb_image.h781
LOWpackages/expo-gl/common/stb_image.h981 return 0;
LOWpackages/expo-gl/common/stb_image.h1081 if ((a >= 0) == (b >= 0)) return a <= SHRT_MAX/b; // product is positive, so similar to mul2sizes_valid
LOWpackages/expo-gl/common/stb_image.h1141 ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order
LOWpackages/expo-gl/common/stb_image.h1721#ifndef STBI_NO_BMP
LOWpackages/expo-gl/common/stb_image.h1921// - still fast on x86 (copying globals into locals doesn't help x86)
LOWpackages/expo-gl/common/stb_image.h2901#undef dct_trn8_32
215 more matches not shown…
Slop Phrases86 hits · 171 pts
SeverityFileLineSnippet
MEDIUM…ublic/static/diffs/template-bare-minimum/diffInfo.json1{"versions":["51","52","53","54","55","56","unversioned"],"diffs":{"51..51":"","51..52":"diff --git a/templates/expo-tem
MEDIUMdocs/public/static/data/v55.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"VectorIconProps","variant"
MEDIUMdocs/public/static/data/v55.0.0/expo-media-library.json1{"schemaVersion":"2.0","name":"expo-media-library","variant":"project","kind":1,"children":[{"name":"PermissionStatus","
MEDIUMdocs/public/static/data/v55.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent
LOWdocs/public/static/data/v55.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent
MEDIUMdocs/public/static/data/v55.0.0/expo-auth-session.json1{"schemaVersion":"2.0","name":"expo-auth-session","variant":"project","kind":1,"children":[{"name":"CodeChallengeMethod"
MEDIUMdocs/public/static/data/v55.0.0/expo-asset.json1{"schemaVersion":"2.0","name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declarati
MEDIUMdocs/public/static/data/v55.0.0/expo-font.json1{"schemaVersion":"2.0","name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"decl
MEDIUMdocs/public/static/data/v55.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"
MEDIUMdocs/public/static/data/v55.0.0/expo-calendar-next.json1{"schemaVersion":"2.0","name":"expo-calendar-next","variant":"project","kind":1,"children":[{"name":"AlarmMethod","varia
MEDIUMdocs/public/static/data/v55.0.0/expo-device-motion.json1{"schemaVersion":"2.0","name":"expo-device-motion","variant":"project","kind":1,"children":[{"name":"default","variant":
MEDIUM…s/public/static/data/v55.0.0/expo-intent-launcher.json1{"schemaVersion":"2.0","name":"expo-intent-launcher","variant":"project","kind":1,"children":[{"name":"ActivityAction","
MEDIUM…s/public/static/data/v55.0.0/expo-document-picker.json1{"schemaVersion":"2.0","name":"expo-document-picker","variant":"project","kind":1,"children":[{"name":"DocumentPickerAss
MEDIUM…cs/public/static/data/v55.0.0/expo-screen-capture.json1{"schemaVersion":"2.0","name":"expo-screen-capture","variant":"project","kind":1,"children":[{"name":"PermissionStatus",
MEDIUM…public/static/data/v55.0.0/expo-image-manipulator.json1{"schemaVersion":"2.0","name":"expo-image-manipulator","variant":"project","kind":1,"children":[{"name":"Action","varian
MEDIUM…ublic/static/data/v55.0.0/expo-screen-orientation.json1{"schemaVersion":"2.0","name":"expo-screen-orientation","variant":"project","kind":1,"children":[{"name":"Orientation","
MEDIUMdocs/public/static/data/v55.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia
MEDIUMdocs/public/static/data/v55.0.0/expo-camera.json1{"schemaVersion":"2.0","name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variant
LOWdocs/public/static/data/v55.0.0/expo-secure-store.json1{"schemaVersion":"2.0","name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilit
MEDIUMdocs/public/static/data/v55.0.0/expo-gyroscope.json1{"schemaVersion":"2.0","name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"dec
MEDIUMdocs/public/static/data/v54.0.0/expo-router.json1{"name":"expo-router","variant":"project","kind":1,"children":[{"name":"LinkMenuActionProps","variant":"declaration","ki
MEDIUMdocs/public/static/data/v54.0.0/expo-media-library.json1{"name":"expo-media-library","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variant":"declaration"
MEDIUMdocs/public/static/data/v54.0.0/expo-notifications.json1{"name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentType","variant":"decla
LOWdocs/public/static/data/v54.0.0/expo-notifications.json1{"name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentType","variant":"decla
MEDIUMdocs/public/static/data/v54.0.0/expo-auth-session.json1{"name":"expo-auth-session","variant":"project","kind":1,"children":[{"name":"CodeChallengeMethod","variant":"declaratio
MEDIUMdocs/public/static/data/v54.0.0/expo-asset.json1{"name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declaration","kind":128,"commen
LOWdocs/public/static/data/v54.0.0/expo-audio-av.json1{"name":"expo-audio-av","variant":"project","kind":1,"children":[{"name":"AndroidAudioEncoder","variant":"declaration","
MEDIUMdocs/public/static/data/v54.0.0/expo-font.json1{"name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"declaration","kind":8,"com
MEDIUMdocs/public/static/data/v54.0.0/expo-sqlite.json1{"name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener","variant":"declaratio
MEDIUMdocs/public/static/data/v54.0.0/expo-device-motion.json1{"name":"expo-device-motion","variant":"project","kind":1,"children":[{"name":"default","variant":"declaration","kind":3
MEDIUM…s/public/static/data/v54.0.0/expo-intent-launcher.json1{"name":"expo-intent-launcher","variant":"project","kind":1,"children":[{"name":"ActivityAction","variant":"declaration"
MEDIUM…s/public/static/data/v54.0.0/expo-document-picker.json1{"name":"expo-document-picker","variant":"project","kind":1,"children":[{"name":"DocumentPickerAsset","variant":"declara
MEDIUM…cs/public/static/data/v54.0.0/expo-screen-capture.json1{"name":"expo-screen-capture","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variant":"declaration
MEDIUM…public/static/data/v54.0.0/expo-image-manipulator.json1{"name":"expo-image-manipulator","variant":"project","kind":1,"children":[{"name":"Action","variant":"declaration","kind
MEDIUM…ublic/static/data/v54.0.0/expo-screen-orientation.json1{"name":"expo-screen-orientation","variant":"project","kind":1,"children":[{"name":"Orientation","variant":"declaration"
MEDIUMdocs/public/static/data/v54.0.0/expo-location.json1{"name":"expo-location","variant":"project","kind":1,"children":[{"name":"Accuracy","variant":"declaration","kind":8,"co
MEDIUMdocs/public/static/data/v54.0.0/expo-camera.json1{"name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variant":"declaration","kind"
LOWdocs/public/static/data/v54.0.0/expo-secure-store.json1{"name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilityConstant","variant":"
MEDIUMdocs/public/static/data/v54.0.0/expo-gyroscope.json1{"name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"declaration","kind":128,"
MEDIUMdocs/public/static/data/v56.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va
MEDIUMdocs/public/static/data/v56.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent
LOWdocs/public/static/data/v56.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent
MEDIUMdocs/public/static/data/v56.0.0/expo-calendar.json1{"schemaVersion":"2.0","name":"expo-calendar","variant":"project","kind":1,"children":[{"name":"AlarmMethod","variant":"
MEDIUMdocs/public/static/data/v56.0.0/expo-auth-session.json1{"schemaVersion":"2.0","name":"expo-auth-session","variant":"project","kind":1,"children":[{"name":"CodeChallengeMethod"
MEDIUMdocs/public/static/data/v56.0.0/expo-asset.json1{"schemaVersion":"2.0","name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declarati
MEDIUMdocs/public/static/data/v56.0.0/expo-font.json1{"schemaVersion":"2.0","name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"decl
MEDIUMdocs/public/static/data/v56.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"
MEDIUMdocs/public/static/data/v56.0.0/expo-calendar-next.json1{"schemaVersion":"2.0","name":"expo-calendar-next","variant":"project","kind":1,"children":[{"name":"AlarmMethod","varia
MEDIUMdocs/public/static/data/v56.0.0/expo-device-motion.json1{"schemaVersion":"2.0","name":"expo-device-motion","variant":"project","kind":1,"children":[{"name":"default","variant":
MEDIUM…s/public/static/data/v56.0.0/expo-intent-launcher.json1{"schemaVersion":"2.0","name":"expo-intent-launcher","variant":"project","kind":1,"children":[{"name":"ActivityAction","
MEDIUM…s/public/static/data/v56.0.0/expo-document-picker.json1{"schemaVersion":"2.0","name":"expo-document-picker","variant":"project","kind":1,"children":[{"name":"DocumentPickerAss
MEDIUM…cs/public/static/data/v56.0.0/expo-screen-capture.json1{"schemaVersion":"2.0","name":"expo-screen-capture","variant":"project","kind":1,"children":[{"name":"PermissionStatus",
MEDIUM…public/static/data/v56.0.0/expo-image-manipulator.json1{"schemaVersion":"2.0","name":"expo-image-manipulator","variant":"project","kind":1,"children":[{"name":"Action","varian
MEDIUM…lic/static/data/v56.0.0/expo-media-library-legacy.json1{"schemaVersion":"2.0","name":"expo-media-library-legacy","variant":"project","kind":1,"children":[{"name":"PermissionSt
MEDIUM…ublic/static/data/v56.0.0/expo-screen-orientation.json1{"schemaVersion":"2.0","name":"expo-screen-orientation","variant":"project","kind":1,"children":[{"name":"Orientation","
MEDIUMdocs/public/static/data/v56.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia
MEDIUMdocs/public/static/data/v56.0.0/expo-camera.json1{"schemaVersion":"2.0","name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variant
LOWdocs/public/static/data/v56.0.0/expo-secure-store.json1{"schemaVersion":"2.0","name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilit
MEDIUMdocs/public/static/data/v56.0.0/expo-gyroscope.json1{"schemaVersion":"2.0","name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"dec
MEDIUMdocs/public/static/data/unversioned/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va
26 more matches not shown…
Cross-File Repetition30 hits · 150 pts
SeverityFileLineSnippet
HIGH…/java/expo/modules/plugin/FixManifestMaxSdkTaskTest.kt0<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.
HIGH…a/expo/modules/plugin/FindPermissionsToOverrideTest.kt0<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.
HIGH…a/expo/modules/plugin/FindPermissionsToOverrideTest.kt0<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.
HIGH…Database/Migrations/UpdatesDatabaseMigration5To6.swift0create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time")
HIGH…atabase/Migrations/UpdatesDatabaseMigration9To10.swift0create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time")
HIGH…Database/Migrations/UpdatesDatabaseMigration6To7.swift0create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time")
HIGH…Database/Migrations/UpdatesDatabaseMigration5To6.swift0create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id")
HIGH…atabase/Migrations/UpdatesDatabaseMigration9To10.swift0create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id")
HIGH…Database/Migrations/UpdatesDatabaseMigration6To7.swift0create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id")
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…po-updates/ios/Tests/DatabaseInitializationTests.swift0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "updates_assets" ("update_id","asset_id") values (x'8c263f9de3ff48888496e3244c788661',2), (x'8c263f9de3ff488
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
HIGH…xpo/modules/updates/db/UpdatesDatabaseMigrationTest.kt0insert into "assets" ("id","url","key","headers","type","metadata","download_time","relative_path","hash","hash_type","m
Hallucination Indicators7 hits · 75 pts
SeverityFileLineSnippet
CRITICAL…dules/src/plugins/android/withAndroidSettingsGradle.ts96 'val pathExpoPackageJson = org.codehaus.groovy.runtime.ProcessGroovyMethods.getText(org.codehaus.groovy.runtim
CRITICAL…dules/devlauncher/compose/screens/CrashReportScreen.kt115 stack = "java.lang.RuntimeException: Sample exception\n\tat com.example.app.MainActivity.onCreate(MainActivity.jav
CRITICAL…xpo/modules/devlauncher/compose/screens/ErrorScreen.kt131 stack = "java.lang.RuntimeException: Sample exception\n\tat com.example.app.MainActivity.onCreate(MainActivity.java:
CRITICAL…/notifications/service/ExpoFirebaseMessagingService.kt9 expo.modules.notifications.service.delegates.FirebaseMessagingDelegate(this)
CRITICAL…odules/adapters/react/services/EventEmitterModule.java41 dispatcher.dispatchEvent(new com.facebook.react.uimanager.events.Event(viewId) {
CRITICAL…odules/adapters/react/services/EventEmitterModule.java71 return new com.facebook.react.uimanager.events.Event(viewId) {
CRITICALapps/test-suite/TestModules.ts161 // 'java.util.Map expo.modules.interfaces.taskManager.TaskInterface.getOptions()' on a null object reference"
AI Slop Vocabulary29 hits · 70 pts
SeverityFileLineSnippet
MEDIUMdocs/public/static/data/v55.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"VectorIconProps","variant"
LOWdocs/public/static/data/v55.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia
MEDIUM…ic/static/data/v55.0.0/expo-ui/swift-ui/modifiers.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon
MEDIUMdocs/public/static/data/v55.0.0/expo-router/link.json1{"schemaVersion":"2.0","name":"expo-router/link","variant":"project","kind":1,"children":[{"name":"DismissalBoundsRect",
MEDIUMdocs/public/static/data/v54.0.0/expo-router.json1{"name":"expo-router","variant":"project","kind":1,"children":[{"name":"LinkMenuActionProps","variant":"declaration","ki
MEDIUMdocs/public/static/data/v54.0.0/expo-router.json1{"name":"expo-router","variant":"project","kind":1,"children":[{"name":"LinkMenuActionProps","variant":"declaration","ki
MEDIUMdocs/public/static/data/v54.0.0/expo-router.json1{"name":"expo-router","variant":"project","kind":1,"children":[{"name":"LinkMenuActionProps","variant":"declaration","ki
MEDIUMdocs/public/static/data/v54.0.0/expo-image.json1{"name":"expo-image","variant":"project","kind":1,"children":[{"name":"Image","variant":"declaration","kind":128,"childr
MEDIUMdocs/public/static/data/v54.0.0/expo-image.json1{"name":"expo-image","variant":"project","kind":1,"children":[{"name":"Image","variant":"declaration","kind":128,"childr
LOWdocs/public/static/data/v54.0.0/expo-location.json1{"name":"expo-location","variant":"project","kind":1,"children":[{"name":"Accuracy","variant":"declaration","kind":8,"co
MEDIUMdocs/public/static/data/v56.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va
MEDIUMdocs/public/static/data/v56.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va
LOWdocs/public/static/data/v56.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia
MEDIUM…ic/static/data/v56.0.0/expo-ui/swift-ui/modifiers.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon
MEDIUMdocs/public/static/data/v56.0.0/expo-router/link.json1{"schemaVersion":"2.0","name":"expo-router/link","variant":"project","kind":1,"children":[{"name":"DismissalBoundsRect",
MEDIUMdocs/public/static/data/unversioned/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va
MEDIUMdocs/public/static/data/unversioned/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va
LOWdocs/public/static/data/unversioned/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia
MEDIUM…tatic/data/unversioned/expo-ui/swift-ui/modifiers.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon
MEDIUM…s/public/static/data/unversioned/expo-router/link.json1{"schemaVersion":"2.0","name":"expo-router/link","variant":"project","kind":1,"children":[{"name":"DismissalBoundsRect",
MEDIUMpackages/expo-asset/src/Asset.server.ts35 // Essentially run the contents of downloadAsync here.
MEDIUM…d/src/main/java/expo/modules/image/enums/ContentFit.kt65 // which will create a seamless transition between various states.
MEDIUM…d/src/main/java/expo/modules/image/enums/ContentFit.kt75 // temporary upscaling is necessary to ensure a seamless transition.
MEDIUM…xpo/modules/kotlin/functions/AsyncFunctionComponent.kt75 // To avoid this issue, we have decided to temporarily utilize
MEDIUMpackages/@expo/cli/src/export/resolveOptions.ts44 // Pass through so the more robust error message is shown.
MEDIUM…ckages/@expo/config-plugins/src/ios/utils/Xcodeproj.ts74// placeholder for now! Make this more robust when we support applying config
MEDIUMpackages/@expo/metro-config/src/babel-transformer.ts216 // NOTE(EvanBacon): We heavily leverage the caller functionality to mutate the babel config.
MEDIUM…rc/react-navigation/bottom-tabs/views/BottomTabBar.tsx324 // Absolutely position the tab bar so that the content is below it
MEDIUM…trics/ios/CrashReporting/CrashReportSymbolicator.swift170 // off by `vmaddr(__TEXT) - header`; the robust fix is to walk `LC_SEGMENT_64` for `__TEXT`.
Fake / Example Data60 hits · 69 pts
SeverityFileLineSnippet
LOWdocs/mdx-plugins/remark-export-headings.test.js7 const { data } = transform(u('root', [u('text', 'lorem ipsum')]));
LOWdocs/mdx-plugins/remark-export-headings.test.js13 const { data } = transform(u('root', [u('heading', [u('text', 'lorem ipsum')])]));
LOWdocs/mdx-plugins/remark-export-headings.test.js19 u('root', [u('heading', [u('text', 'lorem ipsum')]), u('heading', [u('text', 'sit amet')])])
LOWdocs/public/static/data/v55.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"ContactField","vari
LOWdocs/public/static/data/v55.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"ContactField","vari
LOWdocs/public/static/data/v55.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"
LOWdocs/public/static/data/v54.0.0/expo-sqlite.json1{"name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener","variant":"declaratio
LOWdocs/public/static/data/v56.0.0/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"ContactField","variant":
LOWdocs/public/static/data/v56.0.0/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"ContactField","variant":
LOWdocs/public/static/data/v56.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"ContactField","vari
LOWdocs/public/static/data/v56.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"ContactField","vari
LOWdocs/public/static/data/v56.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"
LOWdocs/public/static/data/unversioned/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"ContactField","variant":
LOWdocs/public/static/data/unversioned/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"ContactField","variant":
LOW…public/static/data/unversioned/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"ContactField","vari
LOW…public/static/data/unversioned/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"ContactField","vari
LOWdocs/public/static/data/unversioned/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt33 name = "user@example.com",
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt54 Assert.assertEquals("user@example.com", result.accountName)
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt119 accountName = "user@example.com",
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt155 id = "user@example.com",
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt156 name = "user@example.com",
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt54 CalendarContract.Calendars.ACCOUNT_NAME to "user@example.com",
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt78 Assert.assertEquals("user@example.com", entity.accountName)
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt258 accountName = "user@example.com",
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt274 Assert.assertEquals("user@example.com", uriSlot.captured.getQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME))
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt281 Assert.assertEquals("user@example.com", valuesSlot.captured.getAsString(CalendarContract.Calendars.ACCOUNT_NAME))
LOW…po/modules/devlauncher/compose/primitives/Accordion.kt94 NewText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac nisl interdum, mattis purus a, consequat ip
LOW…po/modules/devlauncher/compose/primitives/Accordion.kt94 NewText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac nisl interdum, mattis purus a, consequat ip
LOWpackages/expo-sqlite/src/SQLiteStatement.ts230 * const result = await statement.executeAsync<{ name: string }>('John Doe', 101);
LOWpackages/expo-sqlite/src/SQLiteStatement.ts304 * const result = statement.executeSync<{ name: string }>('John Doe', 101);
LOWpackages/expo-contacts/src/types/Contact.ts295 * await contact.addAddress({ label: 'home', street: '123 Main St', city: 'London' });
LOWpackages/expo-contacts/src/types/Contact.ts530 * const fullName = await contact.getFullName(); // 'John Doe'
LOWpackages/expo-contacts/src/types/Contact.types.ts12 * @example "user@example.com"
LOWpackages/expo-contacts/src/types/Contact.types.ts125 * @example "123 Main St"
LOWpackages/@expo/cli/e2e/playwright/dev/headless.test.ts79 expect(page.getByText('Lorem ipsum dolor sit amet')).toBeDefined();
LOWpackages/@expo/cli/e2e/playwright/dev/headless.test.ts79 expect(page.getByText('Lorem ipsum dolor sit amet')).toBeDefined();
LOWpackages/@expo/cli/e2e/playwright/dev/headless.test.ts90 expect(page.getByText('Lorem ipsum dolor sit amet')).toBeDefined();
LOWpackages/@expo/cli/e2e/playwright/dev/headless.test.ts90 expect(page.getByText('Lorem ipsum dolor sit amet')).toBeDefined();
LOW…nent-list/src/screens/UI/AlertDialogScreen.android.tsx18 'We are in the alert dialog, this is a very long text that should be wrapped in the alert dialog. Lorem ipsum dolor si
LOW…nent-list/src/screens/UI/AlertDialogScreen.android.tsx18 'We are in the alert dialog, this is a very long text that should be wrapped in the alert dialog. Lorem ipsum dolor si
LOWapps/test-suite/tests/JSNamedGroupsRegexes.js452 const match = re.exec('user@example.com');
LOWapps/test-suite/tests/SQLite.ts340 await statement.executeAsync<any>(1, 'John Doe', 'john@example.com')
LOWapps/test-suite/tests/SQLite.ts344 expect(result.name).toBe('John Doe');
LOWapps/test-suite/tests/SQLite.ts352 $name: 'Jane Doe',
LOWapps/test-suite/tests/SQLite.ts358 expect(result.name).toBe('Jane Doe');
LOWapps/test-suite/tests/SQLite.ts364 expect(result.name).toBe('Jane Doe');
LOWapps/test-suite/tests/CalendarNext.ts90 email: 'test@test.com',
LOWapps/test-suite/tests/ContactsNext.ts449 const value = [{ label: 'mother', name: 'Jane Doe' }];
LOWapps/test-suite/tests/ContactsNext.ts1127 street: '123 Main St',
LOWapps/test-suite/tests/ContactsNext.ts1154 const relationshipId = await contact.addRelation({ label: 'spouse', name: 'Jane Doe' });
LOWapps/test-suite/tests/ContactsNext.ts1651 street: '123 Main St',
LOWapps/test-suite/tests/ContactsNext.ts1681 t.expect(updatedAddresses.some((a) => a.street === '123 Main St')).toBe(false);
LOWapps/test-suite/tests/ContactsNext.ts1691 street: '123 Main St',
LOWapps/router-e2e/__e2e__/web-modal/app/nested/page.tsx32 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut
LOWapps/router-e2e/__e2e__/web-modal/app/nested/page.tsx32 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut
LOWapps/router-e2e/__e2e__/web-modal/app/nested/page.tsx36 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut
LOWapps/router-e2e/__e2e__/web-modal/app/nested/page.tsx36 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut
LOWapps/router-e2e/__e2e__/headless/app/movies/[name].tsx20 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
LOWapps/router-e2e/__e2e__/headless/app/movies/[name].tsx20 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
Cross-Language Confusion (JS/TS)8 hits · 52 pts
SeverityFileLineSnippet
HIGHpackages/@expo/cli/src/start/interface/commandsTable.ts132 print() {
HIGHpackages/@expo/cli/src/utils/qr.ts9 print(): void;
HIGHpackages/@expo/cli/src/utils/qr.ts18 print() {
HIGH…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts322 print("Hello!")
HIGH…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts330 print("Hello \\(name) - value[\\(value)]!")
HIGH…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts379 print("value=\\(value)")
HIGH…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts404 print("value=\\(value)")
HIGH…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts429 print("value=\\(value)")
Overly Generic Function Names19 hits · 23 pts
SeverityFileLineSnippet
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts321 func doSomething() {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts325 func doSomething(forName name: String) -> Bool {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts329 func doSomething(_ name: String, withValue value: String) {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts373func doSomething(_ value: String!) {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts378func doSomething(_ value: String!) {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts397func doSomething(_ value: String!) {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts402func doSomething(_ value: String!) {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts421func doSomething(_ value: String!) -> Bool {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts427func doSomething(_ value: String!) -> Bool {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts347 func doSomething() {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts357 func doSomething() {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts450 func doSomething() {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts458 func doSomething() {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts471 func doSomething() {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts483 func doSomething() {
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts497 func doSomething() {
LOW…p/src/lib/__tests__/FileSystemChangeAggregator.test.ts80function getData(agg: FileSystemChangeAggregator) {
LOW…c/plugins/__tests__/server-data-loaders-plugin.test.ts665 async function getData(id) {
LOW…c/plugins/__tests__/server-data-loaders-plugin.test.ts686 async function getData(id) {
Verbosity Indicators14 hits · 20 pts
SeverityFileLineSnippet
LOW…ain/java/expo/modules/imagepicker/ImagePickerModule.kt180 // We need to check if that is the case and overwrite the result.
LOW…s/medialibrary/MediaLibraryPermissionPromiseWrapper.kt56 // we need to check if the user granted partial access to the media library and overwrite the result.
LOW…xt/permissions/MediaLibraryPermissionPromiseWrapper.kt56 // we need to check if the user granted partial access to the media library and overwrite the result.
LOW…/src/main/java/expo/modules/location/LocationModule.kt181 // We aren't using the values returned above, because we need to check if the user has provided fine location perm
LOWpackages/expo-image/ios/ImageModule.swift234 We need to check if the image exists in the cache first since `cachePath` will
LOWpackages/expo-font/src/FontHooks.ts16 // For web rehydration, we need to check if the fonts are already loaded during the static render.
LOW…xpo-modules-core/ios/Utilities/ConstantsProvider.swift35 // Deprecated, but still used internally. We need to check if the manifest is set, otherwise it will result in
LOW…android/src/main/cpp/decorators/JSClassesDecorator.cpp71 // We need to check if the constructor is still alive.
LOW…li/src/start/platforms/android/AndroidDeviceManager.ts91 // we need to check if the app is installed, else we might bump into "Failure [DELETE_FAILED_INTERNAL_ERROR]"
LOW…outer/src/react-navigation/core/useOnPreventRemove.tsx51 // First, we need to check if any child screens want to prevent it
LOW…/expo-router/src/native-tabs/NativeTabsView.shared.tsx21 // We need to check if the deferred index is not out of bounds
LOW…ain/java/expo/modules/securestore/SecureStoreModule.kt299 * Because of that we need to check if there are any keys stored with the old secure-store key format.
LOWpackages/expo-glass-effect/ios/GlassView.swift38 // UIGlassEffect initialiser is crashing for iOS 26 beta versions for some reason, so we need to check if it's availab
LOWpackages/expo-glass-effect/ios/GlassContainer.swift19 // UIGlassEffect initialiser is failing for iOS 26 beta versions for some reason, so we need to check if it's availabl
Self-Referential Comments5 hits · 16 pts
SeverityFileLineSnippet
MEDIUMdocs/scripts/generate-markdown-pages-utils.test.ts806 expect(md).toContain('# Create a project');
MEDIUM…xpo-modules-autolinking/scripts/ios/packages_config.rb5 # This class is used to store the configuration of the packages that are being used in the project.
MEDIUM…-modules-autolinking/scripts/ios/project_integrator.rb194 # Create a new build script in the target, it's added as the last phase
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb3# This module provides functionality to:
MEDIUM…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh242 # Create the plist file if it doesn't exist
Excessive Try-Catch Wrapping5 hits · 10 pts
SeverityFileLineSnippet
MEDIUM…d/plugin/templates/ios/ReactNativeViewController.swift36 print("Error loading React Native view: \(error)")
MEDIUM…lugin/template-files/ios/ShareIntoViewController.swift80 print("Error: Expo-sharing could not initialize UserDefaults with group: \(appGroupId)")
MEDIUM…lugin/template-files/ios/ShareIntoViewController.swift88 print("Error: Expo-sharing has failed to serialize shared data to JSON")
MEDIUM…lugin/template-files/ios/ShareIntoViewController.swift217 print("Error copying file: \(error)")
MEDIUM…inimaltesterbrownfield/ReactNativeViewController.swift36 print("Error loading React Native view: \(error)")
Example Usage Blocks6 hits · 9 pts
SeverityFileLineSnippet
LOW…s/expo-modules-jsi/apple/scripts/generate-modulemap.sh18# Usage:
LOW…es/expo-modules-jsi/apple/scripts/build-xcframework.sh17# Usage:
LOWpackages/expo-modules-jsi/apple/scripts/test.sh18# Usage:
LOW…o/e2e/image-comparison/inspector/ScreenInspectorIOS.ts190// Example usage
LOW…o-workflow-testing/scripts/detect-prebuild-packages.sh5# Usage:
LOW…xpo-workflow-testing/scripts/detect-platform-change.sh5# Usage:
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippet
HIGH…mmunity/asyncstorage/NativeAsyncStorageModuleSpec.java3 * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
Redundant / Tautological Comments5 hits · 7 pts
SeverityFileLineSnippet
LOW…ckages/expo-dev-launcher/plugin/src/withDevLauncher.ts56 # Check if NSBonjourServices exists
LOW…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh110# Check if a key exists in a plist file
LOW…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh254 # Check if USE_GENERATED_DEFAULTS is explicitly set to false
LOW…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh287 # Set USE_GENERATED_DEFAULTS to true
LOW…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh322 # Check if this template should be skipped