AI Slop Code Risk Monitor

expo/expo

SlopCodeMonitor badge for expo/expo Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

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

2.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for expo/expo, a TypeScript project with 53,240 GitHub stars. SynthScan examined 1,885,756 lines of code across 16645 source files, recording 3048 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 2.0 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

2.0
Adjusted Signal
2.0
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
53.2K
Stars
TypeScript
Language
1.9M
Lines of Code
16.6K
Files
3.0K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 7.7/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 2802 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.9/100 · LOW

Are imports declared and package/API names verified? 135 finding(s).

Agent Over-Engineering Ratio 6.3/100 · LOW

Are wrappers, guards, and repeated structures necessary? 2205 finding(s).

PR Review Velocity Impact 9.5/100 · LOW

Which changes need focused human review? 3048 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 12HIGH 22MEDIUM 242LOW 2772

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 3048 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers2094 hits · 2118 pts
SeverityFileLineSnippetContext
LOWtools/bin/expotools.js106async function calculateSourceChecksumAsync() {CODE
LOWtools/src/ProjectVersions.ts113export async function updateBundledVersionsAsync(patch: Record<string, string>): Promise<void> {CODE
LOWtools/src/IOSSimulator.ts35export async function uninstallAppFromSimulatorAsync(CODE
LOWtools/src/IOSSimulator.ts100export async function isSimulatorInstalledAsync(): Promise<boolean> {CODE
LOWtools/src/IOSSimulator.ts122export async function queryFirstBootedSimulatorAsync(): Promise<SimulatorUdid | null> {CODE
LOWtools/src/GitHub.ts21export async function getAuthenticatedUserAsync() {CODE
LOWtools/src/GitHub.ts122export async function listPullRequestReviewsAsync(CODE
LOWtools/src/GitHub.ts153export async function updatePullRequestReviewAsync(CODE
LOWtools/src/GitHub.ts171export async function listPullRequestReviewCommentsAsync(pull_number: number, review_id: number) {CODE
LOWtools/src/GitHub.ts184export async function deletePullRequestReviewCommentAsync(comment_id: number) {CODE
LOWtools/src/GitHub.ts196export async function deleteAllPullRequestReviewCommentsAsync(CODE
LOWtools/src/GitHub.ts213export async function requestPullRequestReviewersAsync(pull_number: number, reviewers: string[]) {CODE
LOWtools/src/GitHub.ts346export async function getOrCreateReleaseAsync(CODE
LOWtools/src/GitHub.ts439export async function listOpenPullRequestsAsync(options?: {CODE
LOWtools/src/Workspace.ts130async function listWorkspaceProjectsAsync(): Promise<PnpmProjectListing[]> {CODE
LOWtools/src/EASUpdate.ts21export async function setAuthAndPublishProjectWithEasCliAsync(CODE
LOWtools/src/EASUpdate.ts52export async function publishProjectWithEasCliAsync(CODE
LOWtools/src/FirebaseTestLab.ts34export async function buildLocalAndroidAndRunTestAsync(CODE
LOWtools/src/ProjectTemplates.ts16export async function getAvailableProjectTemplatesAsync(): Promise<Package[]> {CODE
LOWtools/src/ProjectTemplates.ts44export async function updateTemplateVersionsAsync(CODE
LOWtools/src/ProjectTemplates.ts79function resolveTargetVersionRange(targetVersionRange: string, currentVersion: string) {CODE
LOWtools/src/IOSSimulatorTestSuite.ts16export async function runTestSuiteOnIOSSimulatorAsync(simulatorId, archivePath, reportPath) {CODE
LOWtools/src/Npm.ts88export async function downloadPackageTarballAsync(CODE
LOWtools/src/Npm.ts261export async function grantReadWriteAccessAsync(CODE
LOWtools/src/TasksRunner.ts324 function iterateThroughDependencies(task: Task<Args>) {CODE
LOWtools/src/Directories.ts49export function getReactNativeSubmoduleDir(): string {CODE
LOWtools/src/Directories.ts53export function getVersionedReactNativeIosDir(): string {CODE
LOWtools/src/Transforms.ts42async function applyTransformsOnFileContentAsync(CODE
LOWtools/src/Transforms.ts67function getFilteredContentTransforms(transforms: FileTransform[], filePath: string) {CODE
LOWtools/src/Transforms.ts150export async function copyFileWithTransformsAsync(CODE
LOWtools/src/GitHubActions.ts79export async function getLatestDispatchedWorkflowRunAsync(workflowId: number) {CODE
LOWtools/src/GitHubActions.ts87export async function getJobsForWorkflowRunAsync(run_id: number) {CODE
LOWtools/src/GitHubActions.ts99export async function dispatchWorkflowEventAsync(CODE
LOWtools/src/GitHubActions.ts118export async function getWorkflowRunsForRepoAsync(CODE
LOWtools/src/linting/SwiftLint.ts55function parseLintResultsFromJSONString(jsonString: string): LintViolation[] {CODE
LOWtools/src/check-packages/scanDependenciesAsync.ts231function createTypescriptImportRef(CODE
LOWtools/src/promote-packages/helpers.ts53function printPackagesToPromoteInternal(parcels: Parcel[], headerText: string): void {CODE
LOW…/src/promote-packages/tasks/selectPackagesToPromote.ts40async function promptForPackagesToPromoteAsync(parcels: Parcel[]): Promise<string[]> {CODE
LOWtools/src/code-review/Changesets.ts18export async function readChangedChangesetsAsync(CODE
LOWtools/src/code-review/reports.ts9export function generateReportFromOutputs(outputs: ReviewOutput[], commitSha: string): string {CODE
LOWtools/src/code-review/index.ts146function getReviewCommentsFromOutputs(outputs: ReviewOutput[]): ReviewComment[] {CODE
LOWtools/src/code-review/index.ts224async function submitReviewWithCommentsAsync(prNumber: number, comments: ReviewComment[]) {CODE
LOWtools/src/code-review/index.ts245async function deleteOutdatedReportsAsync(reports: GitHub.IssueComment[]) {CODE
LOWtools/src/code-review/index.ts253async function deleteOutdatedReviewsAsync(prNumber: number, reviews: GitHub.PullRequestReview[]) {CODE
LOWtools/src/dynamic-macros/generateDynamicMacros.ts16async function getTemplateSubstitutionsFromSecrets(): Promise<TemplateSubstitutions> {CODE
LOWtools/src/dynamic-macros/generateDynamicMacros.ts32async function getTemplateSubstitutionsAsync() {CODE
LOWtools/src/dynamic-macros/generateDynamicMacros.ts65function getMacrosGeneratorForPlatform(platform) {CODE
LOWtools/src/dynamic-macros/generateDynamicMacros.ts78async function generateDynamicMacrosAsync(args) {CODE
LOWtools/src/dynamic-macros/AndroidMacrosGenerator.ts52export async function generateAndroidBuildConstantsFromMacrosAsync(macros) {CODE
LOWtools/src/dynamic-macros/macros.ts91async function getSavedDevHomeEASUpdateUrlAsync(): Promise<string> {CODE
LOWtools/src/dynamic-macros/macros.ts98function kernelManifestAndAssetRequestHeadersObjectToJson(obj: {CODE
LOW…id-update-native-dependencies/androidProjectReports.ts30function generateReportCacheFilePath(dateTimestamp: Date, gradleTaskOptions: GradleTaskOptions) {CODE
LOW…id-update-native-dependencies/androidProjectReports.ts57async function determineGradleWrapperCommand(androidProjectDir: string): Promise<string> {CODE
LOW…id-update-native-dependencies/androidProjectReports.ts115async function readGradleReportAndConvertIntoAndroidReport(CODE
LOWtools/src/android-update-native-dependencies/utils.ts33export function addColorBasedOnSemverDiff(version: string | null, semverDiff: ReleaseType | null) {CODE
LOWtools/src/android-update-native-dependencies/prompts.ts15function generateAndroidProjectsSelectionChoice({CODE
LOWtools/src/android-update-native-dependencies/prompts.ts33export async function promptForAndroidProjectsSelection(CODE
LOWtools/src/android-update-native-dependencies/prompts.ts52async function promptForDependenciesVersions(CODE
LOWtools/src/android-update-native-dependencies/prompts.ts81async function promptForDependencyVersion(CODE
LOWtools/src/android-update-native-dependencies/prompts.ts129async function promptForDependenciesUpdatesSelection(CODE
2034 more matches not shown…
Over-Commented Block488 hits · 476 pts
SeverityFileLineSnippetContext
LOWtools/src/AffectedPackages.ts61COMMENT
LOWtools/src/prebuilds/Utils.test.ts101COMMENT
LOWtools/src/prebuilds/SPMBuild.ts261 // Remap absolute build paths to a canonical /expo-src prefix in DWARF debug info.COMMENT
LOWtools/src/prebuilds/Frameworks.ts901 // These are nested inside the main framework module so their types areCOMMENT
LOWtools/src/prebuilds/SPMPackage.ts1181 // Define RCT_NEW_ARCH_ENABLED (matches template line 763-765)COMMENT
LOWtools/src/prebuilds/Prebuilder.ts21// find a better way to ignore some packages that shouldn't be prebuilt (like interfaces).COMMENT
LOWtools/src/prebuilds/Prebuilder.ts41 // 'expo-font',COMMENT
LOWtools/src/prebuilds/Prebuilder.ts61 // 'expo-sharing',COMMENT
LOW.expo-agents/verify/.eas/workflows/verify.yml1# Thin adapter only — all logic lives in @expo/verify (LLP 0020). CustomizeCOMMENT
LOW.expo-agents/code-review/coordinator.md1---COMMENT
LOWdocs/empty-polyfill.js1// Intentionally empty. Next.js bundles polyfills for APIs like Array.prototype.at,COMMENT
LOWdocs/scripts/generate-markdown-pages-utils.ts821 // Turndown converts <p>, <div>, and <blockquote> to blocks with newlines, which breaksCOMMENT
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.COMMENT
LOW…ule-template/snippets/pnpm/example-pnpm-workspace.yaml1# Keeps the example app out of the module's pnpm workspace, so that `pnpm install`COMMENT
LOWpackages/expo-image-picker/ios/ImageUtils.swift21 // – with the crop *and* the correct visual orientation already baked in –COMMENT
LOW…o-image-picker/ios/StatusBarVisibilityController.swift41// TODO: (@bbarthec) below is possible alternativeCOMMENT
LOW…ages/expo-video/ios/Cache/ResourceLoaderDelegate.swift21 /// Normalized request identity used for cache variant matching. This includesCOMMENT
LOWpackages/expo-video/ios/Cache/CacheVariantIndex.swift201 }COMMENT
LOW…/VideoAssetTransport/VideoAssetTransportProvider.swift1/// Defines a public transport boundary for customizing how `expo-video` loads specific sources.COMMENT
LOW…/VideoAssetTransport/VideoAssetTransportRegistry.swift1/// Stores and resolves ``VideoAssetTransportProvider`` instances used by `expo-video`.COMMENT
LOW…video/ios/VideoAssetTransport/VideoAssetLoadPlan.swift1import AVKitCOMMENT
LOW…video/ios/VideoAssetTransport/VideoAssetLoadPlan.swift21 public let retainedObjects: [AnyObject]COMMENT
LOW…/expo-video/src/__tests__/built-package-test.native.js1const fs = require('fs');COMMENT
LOWpackages/expo-file-system/src/pathUtilities/path.ts1// Copyright Joyent, Inc. and other Node contributors.COMMENT
LOWpackages/expo-file-system/src/pathUtilities/url.ts1// Copyright Joyent, Inc. and other Node contributors.COMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb1# Handles precompiled XCFramework module integration for Expo.COMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb241 configure_header_search_paths(installer)COMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb501COMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb561 endCOMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb601 # @param podfile [Pod::Podfile] The podfile to register pods inCOMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb621 #COMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb961 endCOMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb1001 # spaces has to stay a single clang argument, and the already-present checks below onlyCOMMENT
LOW…modules-autolinking/scripts/ios/precompiled_modules.rb2281 available_libraries.any? do |library|COMMENT
LOW…modules-autolinking/scripts/ios/cocoapods/installer.rb61COMMENT
LOW…modules-autolinking/scripts/ios/cocoapods/installer.rb121 # `stabilize_target_uuids` (run on every install) restarts that counterCOMMENT
LOW…modules-autolinking/scripts/ios/cocoapods/installer.rb241 dirty_projects.each(&:save)COMMENT
LOW…nking/scripts/ios/cocoapods/user_project_integrator.rb21 # @note {TargetDefinition} without dependencies are skipped to preventCOMMENT
LOWpackages/expo-modules-autolinking/src/memoize.ts1// expo-modules-autolinking has a few memoizable operations that we don't want to repeat.COMMENT
LOW…s/expo-manifests/ios/Tests/EmbeddedManifestTests.swift21 guard let manifestJsonObject = manifestJsonObject as? [String: Any] else {COMMENT
LOW…s/expo-manifests/ios/Tests/EmbeddedManifestTests.swift41 #expect(manifest.appKey() == nil)COMMENT
LOW…xpo-manifests/ios/Tests/ExpoUpdatesManifestTests.swift21 }COMMENT
LOW…xpo-manifests/ios/Tests/ExpoUpdatesManifestTests.swift41 #expect(manifest.notificationPreferences() == nil)COMMENT
LOWpackages/expo-gl/ios/EXGLContext.mm161 // Flush all the stuffCOMMENT
LOWpackages/expo-gl/common/pch.h1#pragma onceCOMMENT
LOWpackages/expo-gl/common/EXPlatformUtils.h21#ifdef __ANDROID__COMMENT
LOWpackages/expo-gl/common/EXJsiArgsTransform.h1#pragma onceCOMMENT
LOWpackages/expo-gl/common/stb_image.h121COMMENT
LOWpackages/expo-gl/common/stb_image.h141// unsigned char *data = stbi_load(filename, &x, &y, &n, 0);COMMENT
LOWpackages/expo-gl/common/stb_image.h161// *channels_in_file otherwise. If desired_channels is non-zero,COMMENT
LOWpackages/expo-gl/common/stb_image.h181// more user-friendly ones.COMMENT
LOWpackages/expo-gl/common/stb_image.h201// Additionally, stb_image will reject image files that have any of theirCOMMENT
LOWpackages/expo-gl/common/stb_image.h221// ===========================================================================COMMENT
LOWpackages/expo-gl/common/stb_image.h241// - Small source code footprint ("easy to maintain")COMMENT
LOWpackages/expo-gl/common/stb_image.h261// supported by the compiler. For ARM Neon support, you must explicitlyCOMMENT
LOWpackages/expo-gl/common/stb_image.h281// stb_image supports loading HDR images in general, and currently the RadianceCOMMENT
LOWpackages/expo-gl/common/stb_image.h301//COMMENT
LOWpackages/expo-gl/common/stb_image.h321// Call stbi_set_unpremultiply_on_load(1) as well to force a divide perCOMMENT
LOWpackages/expo-gl/common/stb_image.h341// STBI_NO_PICCOMMENT
LOWpackages/expo-gl/common/stb_image.h361// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greaterCOMMENT
428 more matches not shown…
Decorative Section Separators93 hits · 282 pts
SeverityFileLineSnippetContext
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb732 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb734 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb1269 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb1271 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb1393 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb1395 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb2115 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb2117 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb2525 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb2527 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb2612 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…modules-autolinking/scripts/ios/precompiled_modules.rb2614 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb226 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb228 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb432 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb434 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb478 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb480 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb568 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb570 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb895 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb897 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1248 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1250 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1554 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1556 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1937 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1939 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1991 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb1993 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2052 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2054 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2400 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb2402 # ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ckages/expo-brownfield/e2e/scripts/add_xcframeworks.rb33# ── Cleanup ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ckages/expo-brownfield/e2e/scripts/add_xcframeworks.rb67# ── Add Local Swift Package ────────────────────────────────────────────────────COMMENT
MEDIUM⚡…ages/@expo/cli/metro-require/__tests__/require.test.ts2634 // ┌─────────┐ ┌─────────┐ ────▶ ┌─────────┐COMMENT
MEDIUM⚡…ages/@expo/cli/metro-require/__tests__/require.test.ts2636 // └─────────┘ └─────────┘ └─────────┘COMMENT
MEDIUM⚡…ages/@expo/cli/metro-require/__tests__/require.test.ts2640 // ┌─────────┐ ┌────────┐COMMENT
MEDIUM⚡…ages/@expo/cli/metro-require/__tests__/require.test.ts2642 // └─────────┘ └────────┘COMMENT
MEDIUM⚡…ages/@expo/cli/metro-require/__tests__/require.test.ts2733 // ┌───────────────────┐COMMENT
MEDIUM⚡…ages/@expo/cli/metro-require/__tests__/require.test.ts2735 // ┌───────┐ ┌───┐ ┌───┐ ┌───┐COMMENT
MEDIUM⚡…ages/@expo/cli/metro-require/__tests__/require.test.ts2737 // └───────┘ └───┘ └───┘ └───┘COMMENT
MEDIUM⚡…ages/@expo/cli/metro-require/__tests__/require.test.ts2739 // └─────────┘COMMENT
MEDIUMpackages/create-expo-module/src/featureDetection.ts107 // ── Update brace depth ───────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx81// ─── native defaults ────────────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx151// ─── tintColor ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx167// ─── title ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx199// ─── titleColor ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx258// ─── backgroundColor ────────────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx301// ─── hidden and visibility ──────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx331// ─── headerLeft/headerRight callbacks ───────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx392// ─── hideShadow ─────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx434// ─── translucent ────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx485// ─── backButtonDisplayMode ──────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx540// ─── backButtonInCustomView ─────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx558// ─── disableBackButtonMenu ──────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx574// ─── direction ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx584// ─── experimental_userInterfaceStyle ────────────────────────────────────────────COMMENT
MEDIUM…tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx639// ─── largeTitleHideShadow ───────────────────────────────────────────────────────COMMENT
33 more matches not shown…
Slop Phrases109 hits · 219 pts
SeverityFileLineSnippetContext
MEDIUMdocs/public/static/data/v55.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"VectorIconProps","variant"CODE
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","CODE
MEDIUM⚡docs/public/static/data/v55.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
LOW⚡docs/public/static/data/v55.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
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"CODE
MEDIUMdocs/public/static/data/v55.0.0/expo-asset.json1{"schemaVersion":"2.0","name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declaratiCODE
MEDIUMdocs/public/static/data/v55.0.0/expo-font.json1{"schemaVersion":"2.0","name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"declCODE
MEDIUMdocs/public/static/data/v55.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"CODE
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","variaCODE
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":CODE
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","CODE
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":"DocumentPickerAssCODE
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",CODE
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","varianCODE
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","CODE
MEDIUMdocs/public/static/data/v55.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","variaCODE
MEDIUMdocs/public/static/data/v55.0.0/expo-camera.json1{"schemaVersion":"2.0","name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variantCODE
LOWdocs/public/static/data/v55.0.0/expo-secure-store.json1{"schemaVersion":"2.0","name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilitCODE
MEDIUMdocs/public/static/data/v55.0.0/expo-gyroscope.json1{"schemaVersion":"2.0","name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"decCODE
MEDIUM⚡docs/public/static/data/v56.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","vaCODE
MEDIUM⚡docs/public/static/data/v56.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
LOW⚡docs/public/static/data/v56.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
MEDIUMdocs/public/static/data/v56.0.0/expo-calendar.json1{"schemaVersion":"2.0","name":"expo-calendar","variant":"project","kind":1,"children":[{"name":"AlarmMethod","variant":"CODE
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"CODE
MEDIUMdocs/public/static/data/v56.0.0/expo-asset.json1{"schemaVersion":"2.0","name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declaratiCODE
MEDIUMdocs/public/static/data/v56.0.0/expo-font.json1{"schemaVersion":"2.0","name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"declCODE
MEDIUMdocs/public/static/data/v56.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"CODE
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","variaCODE
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":CODE
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","CODE
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":"DocumentPickerAssCODE
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",CODE
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","varianCODE
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":"PermissionStCODE
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","CODE
MEDIUMdocs/public/static/data/v56.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","variaCODE
MEDIUMdocs/public/static/data/v56.0.0/expo-camera.json1{"schemaVersion":"2.0","name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variantCODE
LOWdocs/public/static/data/v56.0.0/expo-secure-store.json1{"schemaVersion":"2.0","name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilitCODE
MEDIUMdocs/public/static/data/v56.0.0/expo-gyroscope.json1{"schemaVersion":"2.0","name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"decCODE
MEDIUM⚡docs/public/static/data/v57.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","vaCODE
MEDIUM⚡docs/public/static/data/v57.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
LOW⚡docs/public/static/data/v57.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
MEDIUMdocs/public/static/data/v57.0.0/expo-calendar.json1{"schemaVersion":"2.0","name":"expo-calendar","variant":"project","kind":1,"children":[{"name":"AlarmMethod","variant":"CODE
MEDIUMdocs/public/static/data/v57.0.0/expo-auth-session.json1{"schemaVersion":"2.0","name":"expo-auth-session","variant":"project","kind":1,"children":[{"name":"CodeChallengeMethod"CODE
MEDIUMdocs/public/static/data/v57.0.0/expo-asset.json1{"schemaVersion":"2.0","name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declaratiCODE
MEDIUMdocs/public/static/data/v57.0.0/expo-font.json1{"schemaVersion":"2.0","name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"declCODE
MEDIUMdocs/public/static/data/v57.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"CODE
MEDIUMdocs/public/static/data/v57.0.0/expo-calendar-next.json1{"schemaVersion":"2.0","name":"expo-calendar-next","variant":"project","kind":1,"children":[{"name":"AlarmMethod","variaCODE
MEDIUMdocs/public/static/data/v57.0.0/expo-device-motion.json1{"schemaVersion":"2.0","name":"expo-device-motion","variant":"project","kind":1,"children":[{"name":"default","variant":CODE
MEDIUM…s/public/static/data/v57.0.0/expo-intent-launcher.json1{"schemaVersion":"2.0","name":"expo-intent-launcher","variant":"project","kind":1,"children":[{"name":"ActivityAction","CODE
MEDIUM…s/public/static/data/v57.0.0/expo-document-picker.json1{"schemaVersion":"2.0","name":"expo-document-picker","variant":"project","kind":1,"children":[{"name":"DocumentPickerAssCODE
MEDIUM…cs/public/static/data/v57.0.0/expo-screen-capture.json1{"schemaVersion":"2.0","name":"expo-screen-capture","variant":"project","kind":1,"children":[{"name":"PermissionStatus",CODE
MEDIUM…public/static/data/v57.0.0/expo-image-manipulator.json1{"schemaVersion":"2.0","name":"expo-image-manipulator","variant":"project","kind":1,"children":[{"name":"Action","varianCODE
MEDIUM…lic/static/data/v57.0.0/expo-media-library-legacy.json1{"schemaVersion":"2.0","name":"expo-media-library-legacy","variant":"project","kind":1,"children":[{"name":"PermissionStCODE
MEDIUM…ublic/static/data/v57.0.0/expo-screen-orientation.json1{"schemaVersion":"2.0","name":"expo-screen-orientation","variant":"project","kind":1,"children":[{"name":"Orientation","CODE
MEDIUMdocs/public/static/data/v57.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","variaCODE
MEDIUMdocs/public/static/data/v57.0.0/expo-camera.json1{"schemaVersion":"2.0","name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variantCODE
LOWdocs/public/static/data/v57.0.0/expo-secure-store.json1{"schemaVersion":"2.0","name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilitCODE
MEDIUMdocs/public/static/data/v57.0.0/expo-gyroscope.json1{"schemaVersion":"2.0","name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"decCODE
MEDIUM⚡docs/public/static/data/unversioned/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variantCODE
49 more matches not shown…
Hallucination Indicators12 hits · 125 pts
SeverityFileLineSnippetContext
CRITICALdocs/checks/url-recovery.test.js523 const indexRequests = env.ASSETS.fetch.mock.calls.filter(CODE
CRITICAL…dules/src/plugins/android/withAndroidSettingsGradle.ts96 'val pathExpoPackageJson = org.codehaus.groovy.runtime.ProcessGroovyMethods.getText(org.codehaus.groovy.runtimCODE
CRITICAL…kages/expo-ai/src/__tests__/history-acceptance-test.ts188 const requestId = fixture.native.generateAsync.mock.calls.at(-1)![0];CODE
CRITICAL…dules/devlauncher/compose/screens/CrashReportScreen.kt115 stack = "java.lang.RuntimeException: Sample exception\n\tat com.example.app.MainActivity.onCreate(MainActivity.javCODE
CRITICAL…xpo/modules/devlauncher/compose/screens/ErrorScreen.kt135 stack = "java.lang.RuntimeException: Sample exception\n\tat com.example.app.MainActivity.onCreate(MainActivity.java:CODE
CRITICAL…id/src/main/java/expo/modules/observe/OpenTelemetry.kt515fun expo.modules.appmetrics.storage.Span.toOTSpan(): OTSpan {CODE
CRITICAL…/notifications/service/ExpoFirebaseMessagingService.kt9 expo.modules.notifications.service.delegates.FirebaseMessagingDelegate(this)CODE
CRITICAL…odules/adapters/react/services/EventEmitterModule.java41 dispatcher.dispatchEvent(new com.facebook.react.uimanager.events.Event(viewId) {CODE
CRITICAL…odules/adapters/react/services/EventEmitterModule.java71 return new com.facebook.react.uimanager.events.Event(viewId) {CODE
CRITICAL…-state/__tests__/useNavigationTreeReducer.test.web.tsx212 expect(result.result.current.state.routes.map((route) => route.name)).toEqual(['first', 'third']);CODE
CRITICAL…o-router/src/__tests__/experimental-stack.test.ios.tsx228 const homeTabKey = mockedScreens.Tabs.Screen.mock.calls.at(-1)![0].screenKey!;CODE
CRITICALapps/test-suite/TestModules.ts166 // 'java.util.Map expo.modules.interfaces.taskManager.TaskInterface.getOptions()' on a null object reference"COMMENT
Fake / Example Data112 hits · 124 pts
SeverityFileLineSnippetContext
LOW⚡docs/mdx-plugins/remark-export-headings.test.js7 const { data } = transform(u('root', [u('text', 'lorem ipsum')]));CODE
LOW⚡docs/mdx-plugins/remark-export-headings.test.js13 const { data } = transform(u('root', [u('heading', [u('text', 'lorem ipsum')])]));CODE
LOW⚡docs/mdx-plugins/remark-export-headings.test.js19 u('root', [u('heading', [u('text', 'lorem ipsum')]), u('heading', [u('text', 'sit amet')])])CODE
LOW⚡docs/public/static/data/v55.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
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","variCODE
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","variCODE
LOWdocs/public/static/data/v55.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"CODE
LOW…/static/data/v55.0.0/expo-ui/swift-ui/securefield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"SecureFieCODE
LOW…ic/static/data/v55.0.0/expo-ui/swift-ui/textfield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"NativeTextFCODE
LOW⚡docs/public/static/data/v56.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
LOWdocs/public/static/data/v56.0.0/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varianCODE
LOWdocs/public/static/data/v56.0.0/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varianCODE
LOWdocs/public/static/data/v56.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","vCODE
LOWdocs/public/static/data/v56.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","vCODE
LOWdocs/public/static/data/v56.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"CODE
LOW…c/static/data/v56.0.0/expo-ui/universal/textinput.json1{"schemaVersion":"2.0","name":"expo-ui/universal/textinput","variant":"project","kind":1,"children":[{"name":"TextInputPCODE
LOW…/static/data/v56.0.0/expo-ui/swift-ui/securefield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"NativeSecCODE
LOW…ic/static/data/v56.0.0/expo-ui/swift-ui/textfield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"NativeTextFCODE
LOW…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":"ModifierConCODE
LOWdocs/public/static/data/v56.0.0/expo-router/ui.json1{"schemaVersion":"2.0","name":"expo-router/ui","variant":"project","kind":1,"children":[{"name":"ExpoTabsNavigationProp"CODE
LOW⚡docs/public/static/data/v57.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
LOWdocs/public/static/data/v57.0.0/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varianCODE
LOWdocs/public/static/data/v57.0.0/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varianCODE
LOWdocs/public/static/data/v57.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","vCODE
LOWdocs/public/static/data/v57.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","vCODE
LOWdocs/public/static/data/v57.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"CODE
LOW…c/static/data/v57.0.0/expo-ui/universal/textinput.json1{"schemaVersion":"2.0","name":"expo-ui/universal/textinput","variant":"project","kind":1,"children":[{"name":"TextInputPCODE
LOW…/static/data/v57.0.0/expo-ui/swift-ui/securefield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"SecureFieCODE
LOW…ic/static/data/v57.0.0/expo-ui/swift-ui/textfield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"TextFieldPrCODE
LOW…ic/static/data/v57.0.0/expo-ui/swift-ui/modifiers.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierConCODE
LOWdocs/public/static/data/v57.0.0/expo-router/ui.json1{"schemaVersion":"2.0","name":"expo-router/ui","variant":"project","kind":1,"children":[{"name":"ExpoTabsNavigationProp"CODE
LOW⚡…public/static/data/unversioned/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
LOWdocs/public/static/data/unversioned/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varianCODE
LOWdocs/public/static/data/unversioned/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varianCODE
LOW…public/static/data/unversioned/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","vCODE
LOW…public/static/data/unversioned/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","vCODE
LOWdocs/public/static/data/unversioned/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"CODE
LOW…atic/data/unversioned/expo-ui/universal/textinput.json1{"schemaVersion":"2.0","name":"expo-ui/universal/textinput","variant":"project","kind":1,"children":[{"name":"TextInputPCODE
LOW…tic/data/unversioned/expo-ui/swift-ui/securefield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"SecureFieCODE
LOW…tatic/data/unversioned/expo-ui/swift-ui/textfield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"TextFieldPrCODE
LOW…tatic/data/unversioned/expo-ui/swift-ui/modifiers.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierConCODE
LOW⚡docs/public/static/data/v58.0.0/expo-notifications.json1{"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContentCODE
LOWdocs/public/static/data/v58.0.0/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varianCODE
LOWdocs/public/static/data/v58.0.0/expo-contacts.json1{"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varianCODE
LOWdocs/public/static/data/v58.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","vCODE
LOWdocs/public/static/data/v58.0.0/expo-contacts-next.json1{"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","vCODE
LOWdocs/public/static/data/v58.0.0/expo-sqlite.json1{"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener"CODE
LOW…c/static/data/v58.0.0/expo-ui/universal/textinput.json1{"schemaVersion":"2.0","name":"expo-ui/universal/textinput","variant":"project","kind":1,"children":[{"name":"TextInputPCODE
LOW…/static/data/v58.0.0/expo-ui/swift-ui/securefield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"SecureFieCODE
LOW…ic/static/data/v58.0.0/expo-ui/swift-ui/textfield.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"TextFieldPrCODE
LOW…ic/static/data/v58.0.0/expo-ui/swift-ui/modifiers.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierConCODE
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt33 name = "user@example.com",CODE
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt54 Assert.assertEquals("user@example.com", result.accountName)CODE
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt119 accountName = "user@example.com",CODE
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt155 id = "user@example.com",CODE
LOW…po/modules/calendar/next/mappers/CalendarMapperTest.kt156 name = "user@example.com",CODE
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt54 CalendarContract.Calendars.ACCOUNT_NAME to "user@example.com",CODE
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt78 Assert.assertEquals("user@example.com", entity.accountName)CODE
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt258 accountName = "user@example.com",CODE
LOW…domain/repositories/calendar/CalendarRepositoryTest.kt274 Assert.assertEquals("user@example.com", uriSlot.captured.getQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME))CODE
52 more matches not shown…
AI Slop Vocabulary36 hits · 83 pts
SeverityFileLineSnippetContext
MEDIUMdocs/public/static/data/v55.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"VectorIconProps","variant"CODE
LOWdocs/public/static/data/v55.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","variaCODE
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":"ModifierConCODE
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",CODE
MEDIUM⚡docs/public/static/data/v56.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","vaCODE
MEDIUM⚡docs/public/static/data/v56.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","vaCODE
LOWdocs/public/static/data/v56.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","variaCODE
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":"ModifierConCODE
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",CODE
MEDIUM⚡docs/public/static/data/v57.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","vaCODE
MEDIUM⚡docs/public/static/data/v57.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","vaCODE
LOWdocs/public/static/data/v57.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","variaCODE
MEDIUM…ic/static/data/v57.0.0/expo-ui/swift-ui/modifiers.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierConCODE
MEDIUMdocs/public/static/data/v57.0.0/expo-router/link.json1{"schemaVersion":"2.0","name":"expo-router/link","variant":"project","kind":1,"children":[{"name":"DismissalBoundsRect",CODE
MEDIUM⚡docs/public/static/data/unversioned/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variantCODE
MEDIUM⚡docs/public/static/data/unversioned/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variantCODE
MEDIUMdocs/public/static/data/unversioned/expo-video.json1{"schemaVersion":"2.0","name":"expo-video","variant":"project","kind":1,"children":[{"name":"VideoPlayer","variant":"decCODE
MEDIUMdocs/public/static/data/unversioned/expo-video.json1{"schemaVersion":"2.0","name":"expo-video","variant":"project","kind":1,"children":[{"name":"VideoPlayer","variant":"decCODE
LOWdocs/public/static/data/unversioned/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","variaCODE
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":"ModifierConCODE
MEDIUM…s/public/static/data/unversioned/expo-router/link.json1{"schemaVersion":"2.0","name":"expo-router/link","variant":"project","kind":1,"children":[{"name":"DismissalBoundsRect",CODE
MEDIUM⚡docs/public/static/data/v58.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variantCODE
MEDIUM⚡docs/public/static/data/v58.0.0/expo-router.json1{"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variantCODE
MEDIUMdocs/public/static/data/v58.0.0/expo-video.json1{"schemaVersion":"2.0","name":"expo-video","variant":"project","kind":1,"children":[{"name":"VideoPlayer","variant":"decCODE
MEDIUMdocs/public/static/data/v58.0.0/expo-video.json1{"schemaVersion":"2.0","name":"expo-video","variant":"project","kind":1,"children":[{"name":"VideoPlayer","variant":"decCODE
LOWdocs/public/static/data/v58.0.0/expo-location.json1{"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","variaCODE
MEDIUM…ic/static/data/v58.0.0/expo-ui/swift-ui/modifiers.json1{"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierConCODE
MEDIUMdocs/public/static/data/v58.0.0/expo-router/link.json1{"schemaVersion":"2.0","name":"expo-router/link","variant":"project","kind":1,"children":[{"name":"DismissalBoundsRect",CODE
MEDIUMpackages/expo-asset/src/Asset.server.ts35 // Essentially run the contents of downloadAsync here.COMMENT
MEDIUM…d/src/main/java/expo/modules/image/enums/ContentFit.kt65 // which will create a seamless transition between various states.COMMENT
MEDIUM…d/src/main/java/expo/modules/image/enums/ContentFit.kt75 // temporary upscaling is necessary to ensure a seamless transition.COMMENT
MEDIUMpackages/@expo/cli/src/export/resolveOptions.ts45 // Pass through so the more robust error message is shown.COMMENT
MEDIUM…ckages/@expo/config-plugins/src/ios/utils/Xcodeproj.ts87// placeholder for now! Make this more robust when we support applying configCOMMENT
MEDIUMpackages/@expo/metro-config/src/babel-transformer.ts363 // NOTE(EvanBacon): We heavily leverage the caller functionality to mutate the babel config.COMMENT
MEDIUM…rc/react-navigation/bottom-tabs/views/BottomTabBar.tsx312 // Absolutely position the tab bar so that the content is below itCOMMENT
MEDIUM…trics/ios/CrashReporting/CrashReportSymbolicator.swift201 // off by `vmaddr(__TEXT) - header`; the robust fix is to walk `LC_SEGMENT_64` for `__TEXT`.COMMENT
Cross-Language Confusion (JS/TS)11 hits · 75 pts
SeverityFileLineSnippetContext
HIGHpackages/@expo/cli/src/start/interface/commandsTable.ts132 print() {CODE
HIGHpackages/@expo/cli/src/utils/qr.ts9 print(): void;CODE
HIGHpackages/@expo/cli/src/utils/qr.ts18 print() {CODE
HIGH⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts322 print("Hello!")CODE
HIGH⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts330 print("Hello \\(name) - value[\\(value)]!")CODE
HIGH⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts379 print("value=\\(value)")CODE
HIGH⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts404 print("value=\\(value)")CODE
HIGH⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts429 print("value=\\(value)")CODE
HIGH⚡apps/expo-go/tools/device-transformer/build-slim.js202 print(JSON.stringify({ codeLength: __res.code.length, depNames: __res.depNames }));CODE
HIGH⚡apps/expo-go/tools/device-transformer/build-slim.js203 print(__res.code);CODE
HIGH⚡apps/expo-go/tools/device-transformer/build-slim.js205 print('TRANSFORM_ERROR: ' + String(err) + ' code=' + (err && err.code) + '\\n' + ((err && err.stack) || ''));CODE
Cross-File Repetition9 hits · 45 pts
SeverityFileLineSnippetContext
HIGH…Database/Migrations/UpdatesDatabaseMigration5To6.swift0create table "new_updates" ( "id" blob unique, "scope_key" text not null, "commit_time" integer not null, "runtime_versiSTRING
HIGH…atabase/Migrations/UpdatesDatabaseMigration9To10.swift0create table "new_updates" ( "id" blob unique, "scope_key" text not null, "commit_time" integer not null, "runtime_versiSTRING
HIGH…Database/Migrations/UpdatesDatabaseMigration6To7.swift0create table "new_updates" ( "id" blob unique, "scope_key" text not null, "commit_time" integer not null, "runtime_versiSTRING
HIGH…Database/Migrations/UpdatesDatabaseMigration5To6.swift0create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time")STRING
HIGH…atabase/Migrations/UpdatesDatabaseMigration9To10.swift0create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time")STRING
HIGH…Database/Migrations/UpdatesDatabaseMigration6To7.swift0create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time")STRING
HIGH…Database/Migrations/UpdatesDatabaseMigration5To6.swift0create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id")STRING
HIGH…atabase/Migrations/UpdatesDatabaseMigration9To10.swift0create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id")STRING
HIGH…Database/Migrations/UpdatesDatabaseMigration6To7.swift0create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id")STRING
Overly Generic Function Names19 hits · 23 pts
SeverityFileLineSnippetContext
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts321 func doSomething() {CODE
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts325 func doSomething(forName name: String) -> Bool {CODE
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts329 func doSomething(_ name: String, withValue value: String) {CODE
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts373func doSomething(_ value: String!) {CODE
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts378func doSomething(_ value: String!) {CODE
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts397func doSomething(_ value: String!) {CODE
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts402func doSomething(_ value: String!) {CODE
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts421func doSomething(_ value: String!) -> Bool {CODE
LOW⚡…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts427func doSomething(_ value: String!) -> Bool {CODE
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts347 func doSomething() {CODE
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts357 func doSomething() {CODE
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts450 func doSomething() {CODE
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts458 func doSomething() {CODE
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts471 func doSomething() {CODE
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts483 func doSomething() {CODE
LOW…@expo/config-plugins/src/ios/__tests__/codeMod-test.ts497 func doSomething() {CODE
LOW…p/src/lib/__tests__/FileSystemChangeAggregator.test.ts80function getData(agg: FileSystemChangeAggregator) {CODE
LOW…c/plugins/__tests__/server-data-loaders-plugin.test.ts665 async function getData(id) {CODE
LOW…c/plugins/__tests__/server-data-loaders-plugin.test.ts686 async function getData(id) {CODE
Self-Referential Comments7 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMdocs/scripts/generate-markdown-pages-utils.test.ts55 const markdown = '# Create a project\n\nLearn how to create a new Expo project.\n\nBody.';CODE
MEDIUMdocs/scripts/generate-markdown-pages-utils.test.ts63 '# Create a project\n\nLearn how to create a new Expo project.\n\n<AgentInstructions>\n\n## Submitting Feedback\n\CODE
MEDIUMdocs/scripts/generate-markdown-pages-utils.test.ts948 expect(md).toContain('# Create a project');CODE
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.COMMENT
MEDIUM…-modules-autolinking/scripts/ios/project_integrator.rb231 # Create a new build script in the target, it's added as the last phaseCOMMENT
MEDIUM…modules-autolinking/scripts/ios/precompiled_modules.rb3# This module provides functionality to:COMMENT
MEDIUM⚡…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh242 # Create the plist file if it doesn't existCOMMENT
Structural Annotation Overuse13 hits · 19 pts
SeverityFileLineSnippetContext
LOWdocs/README.md272#### Step 1: Update the package's TypeDocCOMMENT
LOWdocs/README.md307#### Step 2: Apply TypeDoc updates to expo/docs repoCOMMENT
LOWdocs/README.md329#### Step 3: See the changes in the docs repoCOMMENT
LOWpackages/precompile/README.md214### Step 1: Analyze the PackageCOMMENT
LOWpackages/precompile/README.md227### Step 2: Create spm.config.jsonCOMMENT
LOWpackages/precompile/README.md314### Step 3: Podspec (Usually No Changes Needed)COMMENT
LOWpackages/precompile/README.md333### Step 4: Build and VerifyCOMMENT
LOW…xpo-modules-autolinking/external-configs/ios/README.md54### Step 1: Analyze the PackageCOMMENT
LOW…xpo-modules-autolinking/external-configs/ios/README.md96### Step 2: Understand the Config StructureCOMMENT
LOW…xpo-modules-autolinking/external-configs/ios/README.md149### Step 3: Split Into Targets by Language (The Multi-Target Pattern)COMMENT
LOW…xpo-modules-autolinking/external-configs/ios/README.md200### Step 4: Header File MappingCOMMENT
LOW…xpo-modules-autolinking/external-configs/ios/README.md219### Step 5: Handle Swift-ObjC InteropCOMMENT
LOW⚡…modules-autolinking/scripts/ios/precompiled_modules.rb738 # NOTE: This method is only used by ExpoModulesCore.podspec, which needs an inlineCOMMENT
Modern AI Meta-Vocabulary7 hits · 19 pts
SeverityFileLineSnippetContext
MEDIUM.expo-agents/verify/prompt.md120 **Then `<details>` blocks, each with a short `<summary>` label and a BLANK LINE after it**, in this order, omitting aCODE
MEDIUM.expo-agents/verify/critic.md2621. **Pull-request body shape (verify mode).** `pr.md` past its first line must have the findings comment's shape: a visCODE
MEDIUMpackages/expo-app-intents/cli/src/init.ts925 // this run would create a duplicate, while a tree with no other setup is safe to scaffold.COMMENT
MEDIUM…ckages/expo-app-intents/cli/src/__tests__/init.test.ts408 // Indexing is driven by setEntityCatalogAsync now, so the scaffold exposes no bridge for it.COMMENT
MEDIUM…ckages/expo-app-intents/cli/src/__tests__/init.test.ts810 // The files that were left alone are reported, so a re-run over an existing scaffold does notCOMMENT
MEDIUM…ckages/expo-app-intents/cli/src/__tests__/init.test.ts1035 // `minimal` contributes no phrase, so the setup module is the file that proves the scaffold ran.COMMENT
MEDIUM…-app-intents/ios/Tests/ExpoAppIntentsModuleTests.swift29 /// A scaffold with no App Shortcut phrases has no `AppShortcutsProvider`, so nothing registers aCOMMENT
Verbosity Indicators13 hits · 19 pts
SeverityFileLineSnippetContext
LOW…ain/java/expo/modules/imagepicker/ImagePickerModule.kt180 // We need to check if that is the case and overwrite the result.COMMENT
LOW…s/medialibrary/MediaLibraryPermissionPromiseWrapper.kt56 // we need to check if the user granted partial access to the media library and overwrite the result.COMMENT
LOW…xt/permissions/MediaLibraryPermissionPromiseWrapper.kt56 // we need to check if the user granted partial access to the media library and overwrite the result.COMMENT
LOW…/src/main/java/expo/modules/location/LocationModule.kt186 // We aren't using the values returned above, because we need to check if the user has provided fine location permCOMMENT
LOWpackages/expo-image/ios/ImageModule.swift256 We need to check if the image exists in the cache first since `cachePath` willCODE
LOWpackages/expo-font/src/FontHooks.ts21 // For web rehydration, we need to check if the fonts are already loaded during the static render.COMMENT
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 inCOMMENT
LOW…android/src/main/cpp/decorators/JSClassesDecorator.cpp71 // We need to check if the constructor is still alive.COMMENT
LOW…li/src/start/platforms/android/AndroidDeviceManager.ts194 // we need to check if the app is installed, else we might bump into "Failure [DELETE_FAILED_INTERNAL_ERROR]"COMMENT
LOW…/expo-router/src/native-tabs/NativeTabsView.shared.tsx28 // We need to check if the deferred index is not out of boundsCOMMENT
LOW…ain/java/expo/modules/securestore/SecureStoreModule.kt278 * Because of that we need to check if there are any keys stored with the old secure-store key format.COMMENT
LOWpackages/expo-glass-effect/ios/GlassView.swift39 // UIGlassEffect initialiser is crashing for iOS 26 beta versions for some reason, so we need to check if it's availabCOMMENT
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 availablCOMMENT
Excessive Try-Catch Wrapping9 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUM…d/plugin/templates/ios/ReactNativeViewController.swift36 print("Error loading React Native view: \(error)")CODE
MEDIUM…ources/ExpoModulesJSI/Runtime/JavaScriptCallback.swift383 print("Error in a JavaScript callback: \(error)")CODE
MEDIUM…ources/ExpoModulesJSI/Runtime/JavaScriptCallback.swift421 print("Error in a JavaScript callback: \(RuntimeLostError())")CODE
MEDIUM…ources/ExpoModulesJSI/Runtime/JavaScriptCallback.swift454 print("Error in a JavaScript callback: \(RuntimeLostError())")CODE
MEDIUM…ources/ExpoModulesJSI/Runtime/JavaScriptCallback.swift556 print("Error in a JavaScript callback: \(error)")CODE
MEDIUM…lugin/template-files/ios/ShareIntoViewController.swift80 print("Error: Expo-sharing could not initialize UserDefaults with group: \(appGroupId)")CODE
MEDIUM…lugin/template-files/ios/ShareIntoViewController.swift88 print("Error: Expo-sharing has failed to serialize shared data to JSON")CODE
MEDIUM…lugin/template-files/ios/ShareIntoViewController.swift217 print("Error copying file: \(error)")CODE
MEDIUM…inimaltesterbrownfield/ReactNativeViewController.swift36 print("Error loading React Native view: \(error)")CODE
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdocs/public/robots.txt3# ai-input: retrieval and grounding for AI-generated answers.COMMENT
HIGH…mmunity/asyncstorage/NativeAsyncStorageModuleSpec.java3 * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).COMMENT
Example Usage Blocks6 hits · 9 pts
SeverityFileLineSnippetContext
LOW…s/expo-modules-jsi/apple/scripts/generate-modulemap.sh18# Usage:COMMENT
LOW…es/expo-modules-jsi/apple/scripts/build-xcframework.sh17# Usage:COMMENT
LOWpackages/expo-modules-jsi/apple/scripts/test.sh18# Usage:COMMENT
LOW…o/e2e/image-comparison/inspector/ScreenInspectorIOS.ts261// Example usageCOMMENT
LOW…o-workflow-testing/scripts/detect-prebuild-packages.sh5# Usage:COMMENT
LOW…xpo-workflow-testing/scripts/detect-platform-change.sh5# Usage:COMMENT
Redundant / Tautological Comments6 hits · 8 pts
SeverityFileLineSnippetContext
LOW…-modules-autolinking/scripts/ios/project_integrator.rb189 # Read the file from disk rather than `build_settings.xcconfig`. Earlier `post_install`COMMENT
LOW…ckages/expo-dev-launcher/plugin/src/withDevLauncher.ts69 # Check if NSBonjourServices existsCOMMENT
LOW…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh110# Check if a key exists in a plist fileCOMMENT
LOW…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh254 # Check if USE_GENERATED_DEFAULTS is explicitly set to falseCOMMENT
LOW…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh287 # Set USE_GENERATED_DEFAULTS to trueCOMMENT
LOW…ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh322 # Check if this template should be skippedCOMMENT
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOW…o/modules/react-native-view-shot/lib/RNViewShot.web.js30 // TODO: implement snapshotContentContainer optionCOMMENT
LOW…o/modules/react-native-view-shot/src/RNViewShot.web.ts37 // TODO: implement snapshotContentContainer optionCOMMENT