An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.
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.
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.
Can maintainers explain intent, assumptions, and trade-offs? 2802 finding(s).
Are imports declared and package/API names verified? 135 finding(s).
Are wrappers, guards, and repeated structures necessary? 2205 finding(s).
Which changes need focused human review? 3048 finding(s).
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.
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.
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.
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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/bin/expotools.js | 106 | async function calculateSourceChecksumAsync() { | CODE |
| LOW | tools/src/ProjectVersions.ts | 113 | export async function updateBundledVersionsAsync(patch: Record<string, string>): Promise<void> { | CODE |
| LOW | tools/src/IOSSimulator.ts | 35 | export async function uninstallAppFromSimulatorAsync( | CODE |
| LOW | tools/src/IOSSimulator.ts | 100 | export async function isSimulatorInstalledAsync(): Promise<boolean> { | CODE |
| LOW | tools/src/IOSSimulator.ts | 122 | export async function queryFirstBootedSimulatorAsync(): Promise<SimulatorUdid | null> { | CODE |
| LOW | tools/src/GitHub.ts | 21 | export async function getAuthenticatedUserAsync() { | CODE |
| LOW | tools/src/GitHub.ts | 122 | export async function listPullRequestReviewsAsync( | CODE |
| LOW | tools/src/GitHub.ts | 153 | export async function updatePullRequestReviewAsync( | CODE |
| LOW | tools/src/GitHub.ts | 171 | export async function listPullRequestReviewCommentsAsync(pull_number: number, review_id: number) { | CODE |
| LOW | tools/src/GitHub.ts | 184 | export async function deletePullRequestReviewCommentAsync(comment_id: number) { | CODE |
| LOW | tools/src/GitHub.ts | 196 | export async function deleteAllPullRequestReviewCommentsAsync( | CODE |
| LOW | tools/src/GitHub.ts | 213 | export async function requestPullRequestReviewersAsync(pull_number: number, reviewers: string[]) { | CODE |
| LOW | tools/src/GitHub.ts | 346 | export async function getOrCreateReleaseAsync( | CODE |
| LOW | tools/src/GitHub.ts | 439 | export async function listOpenPullRequestsAsync(options?: { | CODE |
| LOW | tools/src/Workspace.ts | 130 | async function listWorkspaceProjectsAsync(): Promise<PnpmProjectListing[]> { | CODE |
| LOW | tools/src/EASUpdate.ts | 21 | export async function setAuthAndPublishProjectWithEasCliAsync( | CODE |
| LOW | tools/src/EASUpdate.ts | 52 | export async function publishProjectWithEasCliAsync( | CODE |
| LOW | tools/src/FirebaseTestLab.ts | 34 | export async function buildLocalAndroidAndRunTestAsync( | CODE |
| LOW | tools/src/ProjectTemplates.ts | 16 | export async function getAvailableProjectTemplatesAsync(): Promise<Package[]> { | CODE |
| LOW | tools/src/ProjectTemplates.ts | 44 | export async function updateTemplateVersionsAsync( | CODE |
| LOW | tools/src/ProjectTemplates.ts | 79 | function resolveTargetVersionRange(targetVersionRange: string, currentVersion: string) { | CODE |
| LOW | tools/src/IOSSimulatorTestSuite.ts | 16 | export async function runTestSuiteOnIOSSimulatorAsync(simulatorId, archivePath, reportPath) { | CODE |
| LOW | tools/src/Npm.ts | 88 | export async function downloadPackageTarballAsync( | CODE |
| LOW | tools/src/Npm.ts | 261 | export async function grantReadWriteAccessAsync( | CODE |
| LOW | tools/src/TasksRunner.ts | 324 | function iterateThroughDependencies(task: Task<Args>) { | CODE |
| LOW | tools/src/Directories.ts | 49 | export function getReactNativeSubmoduleDir(): string { | CODE |
| LOW | tools/src/Directories.ts | 53 | export function getVersionedReactNativeIosDir(): string { | CODE |
| LOW | tools/src/Transforms.ts | 42 | async function applyTransformsOnFileContentAsync( | CODE |
| LOW | tools/src/Transforms.ts | 67 | function getFilteredContentTransforms(transforms: FileTransform[], filePath: string) { | CODE |
| LOW | tools/src/Transforms.ts | 150 | export async function copyFileWithTransformsAsync( | CODE |
| LOW | tools/src/GitHubActions.ts | 79 | export async function getLatestDispatchedWorkflowRunAsync(workflowId: number) { | CODE |
| LOW | tools/src/GitHubActions.ts | 87 | export async function getJobsForWorkflowRunAsync(run_id: number) { | CODE |
| LOW | tools/src/GitHubActions.ts | 99 | export async function dispatchWorkflowEventAsync( | CODE |
| LOW | tools/src/GitHubActions.ts | 118 | export async function getWorkflowRunsForRepoAsync( | CODE |
| LOW | tools/src/linting/SwiftLint.ts | 55 | function parseLintResultsFromJSONString(jsonString: string): LintViolation[] { | CODE |
| LOW | tools/src/check-packages/scanDependenciesAsync.ts | 231 | function createTypescriptImportRef( | CODE |
| LOW | tools/src/promote-packages/helpers.ts | 53 | function printPackagesToPromoteInternal(parcels: Parcel[], headerText: string): void { | CODE |
| LOW | …/src/promote-packages/tasks/selectPackagesToPromote.ts | 40 | async function promptForPackagesToPromoteAsync(parcels: Parcel[]): Promise<string[]> { | CODE |
| LOW | tools/src/code-review/Changesets.ts | 18 | export async function readChangedChangesetsAsync( | CODE |
| LOW | tools/src/code-review/reports.ts | 9 | export function generateReportFromOutputs(outputs: ReviewOutput[], commitSha: string): string { | CODE |
| LOW | tools/src/code-review/index.ts | 146 | function getReviewCommentsFromOutputs(outputs: ReviewOutput[]): ReviewComment[] { | CODE |
| LOW | tools/src/code-review/index.ts | 224 | async function submitReviewWithCommentsAsync(prNumber: number, comments: ReviewComment[]) { | CODE |
| LOW | tools/src/code-review/index.ts | 245 | async function deleteOutdatedReportsAsync(reports: GitHub.IssueComment[]) { | CODE |
| LOW | tools/src/code-review/index.ts | 253 | async function deleteOutdatedReviewsAsync(prNumber: number, reviews: GitHub.PullRequestReview[]) { | CODE |
| LOW | tools/src/dynamic-macros/generateDynamicMacros.ts | 16 | async function getTemplateSubstitutionsFromSecrets(): Promise<TemplateSubstitutions> { | CODE |
| LOW | tools/src/dynamic-macros/generateDynamicMacros.ts | 32 | async function getTemplateSubstitutionsAsync() { | CODE |
| LOW | tools/src/dynamic-macros/generateDynamicMacros.ts | 65 | function getMacrosGeneratorForPlatform(platform) { | CODE |
| LOW | tools/src/dynamic-macros/generateDynamicMacros.ts | 78 | async function generateDynamicMacrosAsync(args) { | CODE |
| LOW | tools/src/dynamic-macros/AndroidMacrosGenerator.ts | 52 | export async function generateAndroidBuildConstantsFromMacrosAsync(macros) { | CODE |
| LOW | tools/src/dynamic-macros/macros.ts | 91 | async function getSavedDevHomeEASUpdateUrlAsync(): Promise<string> { | CODE |
| LOW | tools/src/dynamic-macros/macros.ts | 98 | function kernelManifestAndAssetRequestHeadersObjectToJson(obj: { | CODE |
| LOW | …id-update-native-dependencies/androidProjectReports.ts | 30 | function generateReportCacheFilePath(dateTimestamp: Date, gradleTaskOptions: GradleTaskOptions) { | CODE |
| LOW | …id-update-native-dependencies/androidProjectReports.ts | 57 | async function determineGradleWrapperCommand(androidProjectDir: string): Promise<string> { | CODE |
| LOW | …id-update-native-dependencies/androidProjectReports.ts | 115 | async function readGradleReportAndConvertIntoAndroidReport( | CODE |
| LOW | tools/src/android-update-native-dependencies/utils.ts | 33 | export function addColorBasedOnSemverDiff(version: string | null, semverDiff: ReleaseType | null) { | CODE |
| LOW | tools/src/android-update-native-dependencies/prompts.ts | 15 | function generateAndroidProjectsSelectionChoice({ | CODE |
| LOW | tools/src/android-update-native-dependencies/prompts.ts | 33 | export async function promptForAndroidProjectsSelection( | CODE |
| LOW | tools/src/android-update-native-dependencies/prompts.ts | 52 | async function promptForDependenciesVersions( | CODE |
| LOW | tools/src/android-update-native-dependencies/prompts.ts | 81 | async function promptForDependencyVersion( | CODE |
| LOW | tools/src/android-update-native-dependencies/prompts.ts | 129 | async function promptForDependenciesUpdatesSelection( | CODE |
| 2034 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/src/AffectedPackages.ts | 61 | COMMENT | |
| LOW | tools/src/prebuilds/Utils.test.ts | 101 | COMMENT | |
| LOW | tools/src/prebuilds/SPMBuild.ts | 261 | // Remap absolute build paths to a canonical /expo-src prefix in DWARF debug info. | COMMENT |
| LOW | tools/src/prebuilds/Frameworks.ts | 901 | // These are nested inside the main framework module so their types are | COMMENT |
| LOW | tools/src/prebuilds/SPMPackage.ts | 1181 | // Define RCT_NEW_ARCH_ENABLED (matches template line 763-765) | COMMENT |
| LOW | tools/src/prebuilds/Prebuilder.ts | 21 | // find a better way to ignore some packages that shouldn't be prebuilt (like interfaces). | COMMENT |
| LOW | tools/src/prebuilds/Prebuilder.ts | 41 | // 'expo-font', | COMMENT |
| LOW | tools/src/prebuilds/Prebuilder.ts | 61 | // 'expo-sharing', | COMMENT |
| LOW | .expo-agents/verify/.eas/workflows/verify.yml | 1 | # Thin adapter only — all logic lives in @expo/verify (LLP 0020). Customize | COMMENT |
| LOW | .expo-agents/code-review/coordinator.md | 1 | --- | COMMENT |
| LOW | docs/empty-polyfill.js | 1 | // Intentionally empty. Next.js bundles polyfills for APIs like Array.prototype.at, | COMMENT |
| LOW | docs/scripts/generate-markdown-pages-utils.ts | 821 | // Turndown converts <p>, <div>, and <blockquote> to blocks with newlines, which breaks | COMMENT |
| LOW | packages/expo-dev-client/src/types.d.ts | 1 | // 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.yaml | 1 | # Keeps the example app out of the module's pnpm workspace, so that `pnpm install` | COMMENT |
| LOW | packages/expo-image-picker/ios/ImageUtils.swift | 21 | // – with the crop *and* the correct visual orientation already baked in – | COMMENT |
| LOW | …o-image-picker/ios/StatusBarVisibilityController.swift | 41 | // TODO: (@bbarthec) below is possible alternative | COMMENT |
| LOW | …ages/expo-video/ios/Cache/ResourceLoaderDelegate.swift | 21 | /// Normalized request identity used for cache variant matching. This includes | COMMENT |
| LOW | packages/expo-video/ios/Cache/CacheVariantIndex.swift | 201 | } | COMMENT |
| LOW | …/VideoAssetTransport/VideoAssetTransportProvider.swift | 1 | /// Defines a public transport boundary for customizing how `expo-video` loads specific sources. | COMMENT |
| LOW | …/VideoAssetTransport/VideoAssetTransportRegistry.swift | 1 | /// Stores and resolves ``VideoAssetTransportProvider`` instances used by `expo-video`. | COMMENT |
| LOW | …video/ios/VideoAssetTransport/VideoAssetLoadPlan.swift | 1 | import AVKit | COMMENT |
| LOW | …video/ios/VideoAssetTransport/VideoAssetLoadPlan.swift | 21 | public let retainedObjects: [AnyObject] | COMMENT |
| LOW | …/expo-video/src/__tests__/built-package-test.native.js | 1 | const fs = require('fs'); | COMMENT |
| LOW | packages/expo-file-system/src/pathUtilities/path.ts | 1 | // Copyright Joyent, Inc. and other Node contributors. | COMMENT |
| LOW | packages/expo-file-system/src/pathUtilities/url.ts | 1 | // Copyright Joyent, Inc. and other Node contributors. | COMMENT |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1 | # Handles precompiled XCFramework module integration for Expo. | COMMENT |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 241 | configure_header_search_paths(installer) | COMMENT |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 501 | COMMENT | |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 561 | end | COMMENT |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 601 | # @param podfile [Pod::Podfile] The podfile to register pods in | COMMENT |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 621 | # | COMMENT |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 961 | end | COMMENT |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1001 | # spaces has to stay a single clang argument, and the already-present checks below only | COMMENT |
| LOW | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2281 | available_libraries.any? do |library| | COMMENT |
| LOW | …modules-autolinking/scripts/ios/cocoapods/installer.rb | 61 | COMMENT | |
| LOW | …modules-autolinking/scripts/ios/cocoapods/installer.rb | 121 | # `stabilize_target_uuids` (run on every install) restarts that counter | COMMENT |
| LOW | …modules-autolinking/scripts/ios/cocoapods/installer.rb | 241 | dirty_projects.each(&:save) | COMMENT |
| LOW | …nking/scripts/ios/cocoapods/user_project_integrator.rb | 21 | # @note {TargetDefinition} without dependencies are skipped to prevent | COMMENT |
| LOW | packages/expo-modules-autolinking/src/memoize.ts | 1 | // expo-modules-autolinking has a few memoizable operations that we don't want to repeat. | COMMENT |
| LOW | …s/expo-manifests/ios/Tests/EmbeddedManifestTests.swift | 21 | guard let manifestJsonObject = manifestJsonObject as? [String: Any] else { | COMMENT |
| LOW | …s/expo-manifests/ios/Tests/EmbeddedManifestTests.swift | 41 | #expect(manifest.appKey() == nil) | COMMENT |
| LOW | …xpo-manifests/ios/Tests/ExpoUpdatesManifestTests.swift | 21 | } | COMMENT |
| LOW | …xpo-manifests/ios/Tests/ExpoUpdatesManifestTests.swift | 41 | #expect(manifest.notificationPreferences() == nil) | COMMENT |
| LOW | packages/expo-gl/ios/EXGLContext.mm | 161 | // Flush all the stuff | COMMENT |
| LOW | packages/expo-gl/common/pch.h | 1 | #pragma once | COMMENT |
| LOW | packages/expo-gl/common/EXPlatformUtils.h | 21 | #ifdef __ANDROID__ | COMMENT |
| LOW | packages/expo-gl/common/EXJsiArgsTransform.h | 1 | #pragma once | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 121 | COMMENT | |
| LOW | packages/expo-gl/common/stb_image.h | 141 | // unsigned char *data = stbi_load(filename, &x, &y, &n, 0); | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 161 | // *channels_in_file otherwise. If desired_channels is non-zero, | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 181 | // more user-friendly ones. | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 201 | // Additionally, stb_image will reject image files that have any of their | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 221 | // =========================================================================== | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 241 | // - Small source code footprint ("easy to maintain") | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 261 | // supported by the compiler. For ARM Neon support, you must explicitly | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 281 | // stb_image supports loading HDR images in general, and currently the Radiance | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 301 | // | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 321 | // Call stbi_set_unpremultiply_on_load(1) as well to force a divide per | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 341 | // STBI_NO_PIC | COMMENT |
| LOW | packages/expo-gl/common/stb_image.h | 361 | // - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater | COMMENT |
| 428 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 732 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 734 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1269 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1271 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1393 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1395 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2115 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2117 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2525 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2527 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2612 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2614 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 226 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 228 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 432 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 434 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 478 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 480 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 568 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 570 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 895 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 897 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1248 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1250 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1554 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1556 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1937 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1939 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1991 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 1993 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2052 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2054 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2400 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 2402 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckages/expo-brownfield/e2e/scripts/add_xcframeworks.rb | 33 | # ── Cleanup ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ckages/expo-brownfield/e2e/scripts/add_xcframeworks.rb | 67 | # ── Add Local Swift Package ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ages/@expo/cli/metro-require/__tests__/require.test.ts | 2634 | // ┌─────────┐ ┌─────────┐ ────▶ ┌─────────┐ | COMMENT |
| MEDIUM⚡ | …ages/@expo/cli/metro-require/__tests__/require.test.ts | 2636 | // └─────────┘ └─────────┘ └─────────┘ | COMMENT |
| MEDIUM⚡ | …ages/@expo/cli/metro-require/__tests__/require.test.ts | 2640 | // ┌─────────┐ ┌────────┐ | COMMENT |
| MEDIUM⚡ | …ages/@expo/cli/metro-require/__tests__/require.test.ts | 2642 | // └─────────┘ └────────┘ | COMMENT |
| MEDIUM⚡ | …ages/@expo/cli/metro-require/__tests__/require.test.ts | 2733 | // ┌───────────────────┐ | COMMENT |
| MEDIUM⚡ | …ages/@expo/cli/metro-require/__tests__/require.test.ts | 2735 | // ┌───────┐ ┌───┐ ┌───┐ ┌───┐ | COMMENT |
| MEDIUM⚡ | …ages/@expo/cli/metro-require/__tests__/require.test.ts | 2737 | // └───────┘ └───┘ └───┘ └───┘ | COMMENT |
| MEDIUM⚡ | …ages/@expo/cli/metro-require/__tests__/require.test.ts | 2739 | // └─────────┘ | COMMENT |
| MEDIUM | packages/create-expo-module/src/featureDetection.ts | 107 | // ── Update brace depth ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 81 | // ─── native defaults ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 151 | // ─── tintColor ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 167 | // ─── title ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 199 | // ─── titleColor ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 258 | // ─── backgroundColor ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 301 | // ─── hidden and visibility ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 331 | // ─── headerLeft/headerRight callbacks ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 392 | // ─── hideShadow ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 434 | // ─── translucent ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 485 | // ─── backButtonDisplayMode ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 540 | // ─── backButtonInCustomView ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 558 | // ─── disableBackButtonMenu ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 574 | // ─── direction ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 584 | // ─── experimental_userInterfaceStyle ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …tive-stack/__tests__/useHeaderConfigProps.test.ios.tsx | 639 | // ─── largeTitleHideShadow ─────────────────────────────────────────────────────── | COMMENT |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/public/static/data/v55.0.0/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"VectorIconProps","variant" | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-media-library.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| LOW⚡ | docs/public/static/data/v55.0.0/expo-notifications.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-auth-session.json | 1 | {"schemaVersion":"2.0","name":"expo-auth-session","variant":"project","kind":1,"children":[{"name":"CodeChallengeMethod" | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-asset.json | 1 | {"schemaVersion":"2.0","name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declarati | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-font.json | 1 | {"schemaVersion":"2.0","name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"decl | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-sqlite.json | 1 | {"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener" | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-calendar-next.json | 1 | {"schemaVersion":"2.0","name":"expo-calendar-next","variant":"project","kind":1,"children":[{"name":"AlarmMethod","varia | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-device-motion.json | 1 | {"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.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-document-picker","variant":"project","kind":1,"children":[{"name":"DocumentPickerAss | CODE |
| MEDIUM | …cs/public/static/data/v55.0.0/expo-screen-capture.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-image-manipulator","variant":"project","kind":1,"children":[{"name":"Action","varian | CODE |
| MEDIUM | …ublic/static/data/v55.0.0/expo-screen-orientation.json | 1 | {"schemaVersion":"2.0","name":"expo-screen-orientation","variant":"project","kind":1,"children":[{"name":"Orientation"," | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-location.json | 1 | {"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-camera.json | 1 | {"schemaVersion":"2.0","name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variant | CODE |
| LOW | docs/public/static/data/v55.0.0/expo-secure-store.json | 1 | {"schemaVersion":"2.0","name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilit | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-gyroscope.json | 1 | {"schemaVersion":"2.0","name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"dec | CODE |
| MEDIUM⚡ | docs/public/static/data/v56.0.0/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va | CODE |
| MEDIUM⚡ | docs/public/static/data/v56.0.0/expo-notifications.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| LOW⚡ | docs/public/static/data/v56.0.0/expo-notifications.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-calendar.json | 1 | {"schemaVersion":"2.0","name":"expo-calendar","variant":"project","kind":1,"children":[{"name":"AlarmMethod","variant":" | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-auth-session.json | 1 | {"schemaVersion":"2.0","name":"expo-auth-session","variant":"project","kind":1,"children":[{"name":"CodeChallengeMethod" | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-asset.json | 1 | {"schemaVersion":"2.0","name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declarati | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-font.json | 1 | {"schemaVersion":"2.0","name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"decl | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-sqlite.json | 1 | {"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener" | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-calendar-next.json | 1 | {"schemaVersion":"2.0","name":"expo-calendar-next","variant":"project","kind":1,"children":[{"name":"AlarmMethod","varia | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-device-motion.json | 1 | {"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.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-document-picker","variant":"project","kind":1,"children":[{"name":"DocumentPickerAss | CODE |
| MEDIUM | …cs/public/static/data/v56.0.0/expo-screen-capture.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-image-manipulator","variant":"project","kind":1,"children":[{"name":"Action","varian | CODE |
| MEDIUM | …lic/static/data/v56.0.0/expo-media-library-legacy.json | 1 | {"schemaVersion":"2.0","name":"expo-media-library-legacy","variant":"project","kind":1,"children":[{"name":"PermissionSt | CODE |
| MEDIUM | …ublic/static/data/v56.0.0/expo-screen-orientation.json | 1 | {"schemaVersion":"2.0","name":"expo-screen-orientation","variant":"project","kind":1,"children":[{"name":"Orientation"," | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-location.json | 1 | {"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-camera.json | 1 | {"schemaVersion":"2.0","name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variant | CODE |
| LOW | docs/public/static/data/v56.0.0/expo-secure-store.json | 1 | {"schemaVersion":"2.0","name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilit | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-gyroscope.json | 1 | {"schemaVersion":"2.0","name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"dec | CODE |
| MEDIUM⚡ | docs/public/static/data/v57.0.0/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va | CODE |
| MEDIUM⚡ | docs/public/static/data/v57.0.0/expo-notifications.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| LOW⚡ | docs/public/static/data/v57.0.0/expo-notifications.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-calendar.json | 1 | {"schemaVersion":"2.0","name":"expo-calendar","variant":"project","kind":1,"children":[{"name":"AlarmMethod","variant":" | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-auth-session.json | 1 | {"schemaVersion":"2.0","name":"expo-auth-session","variant":"project","kind":1,"children":[{"name":"CodeChallengeMethod" | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-asset.json | 1 | {"schemaVersion":"2.0","name":"expo-asset","variant":"project","kind":1,"children":[{"name":"Asset","variant":"declarati | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-font.json | 1 | {"schemaVersion":"2.0","name":"expo-font","variant":"project","kind":1,"children":[{"name":"FontDisplay","variant":"decl | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-sqlite.json | 1 | {"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener" | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-calendar-next.json | 1 | {"schemaVersion":"2.0","name":"expo-calendar-next","variant":"project","kind":1,"children":[{"name":"AlarmMethod","varia | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-device-motion.json | 1 | {"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.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-document-picker","variant":"project","kind":1,"children":[{"name":"DocumentPickerAss | CODE |
| MEDIUM | …cs/public/static/data/v57.0.0/expo-screen-capture.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-image-manipulator","variant":"project","kind":1,"children":[{"name":"Action","varian | CODE |
| MEDIUM | …lic/static/data/v57.0.0/expo-media-library-legacy.json | 1 | {"schemaVersion":"2.0","name":"expo-media-library-legacy","variant":"project","kind":1,"children":[{"name":"PermissionSt | CODE |
| MEDIUM | …ublic/static/data/v57.0.0/expo-screen-orientation.json | 1 | {"schemaVersion":"2.0","name":"expo-screen-orientation","variant":"project","kind":1,"children":[{"name":"Orientation"," | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-location.json | 1 | {"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-camera.json | 1 | {"schemaVersion":"2.0","name":"expo-camera","variant":"project","kind":1,"children":[{"name":"PermissionStatus","variant | CODE |
| LOW | docs/public/static/data/v57.0.0/expo-secure-store.json | 1 | {"schemaVersion":"2.0","name":"expo-secure-store","variant":"project","kind":1,"children":[{"name":"KeychainAccessibilit | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-gyroscope.json | 1 | {"schemaVersion":"2.0","name":"expo-gyroscope","variant":"project","kind":1,"children":[{"name":"default","variant":"dec | CODE |
| MEDIUM⚡ | docs/public/static/data/unversioned/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variant | CODE |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | docs/checks/url-recovery.test.js | 523 | const indexRequests = env.ASSETS.fetch.mock.calls.filter( | CODE |
| CRITICAL | …dules/src/plugins/android/withAndroidSettingsGradle.ts | 96 | 'val pathExpoPackageJson = org.codehaus.groovy.runtime.ProcessGroovyMethods.getText(org.codehaus.groovy.runtim | CODE |
| CRITICAL | …kages/expo-ai/src/__tests__/history-acceptance-test.ts | 188 | const requestId = fixture.native.generateAsync.mock.calls.at(-1)![0]; | CODE |
| CRITICAL | …dules/devlauncher/compose/screens/CrashReportScreen.kt | 115 | stack = "java.lang.RuntimeException: Sample exception\n\tat com.example.app.MainActivity.onCreate(MainActivity.jav | CODE |
| CRITICAL | …xpo/modules/devlauncher/compose/screens/ErrorScreen.kt | 135 | 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.kt | 515 | fun expo.modules.appmetrics.storage.Span.toOTSpan(): OTSpan { | CODE |
| CRITICAL | …/notifications/service/ExpoFirebaseMessagingService.kt | 9 | expo.modules.notifications.service.delegates.FirebaseMessagingDelegate(this) | CODE |
| CRITICAL | …odules/adapters/react/services/EventEmitterModule.java | 41 | dispatcher.dispatchEvent(new com.facebook.react.uimanager.events.Event(viewId) { | CODE |
| CRITICAL | …odules/adapters/react/services/EventEmitterModule.java | 71 | return new com.facebook.react.uimanager.events.Event(viewId) { | CODE |
| CRITICAL | …-state/__tests__/useNavigationTreeReducer.test.web.tsx | 212 | expect(result.result.current.state.routes.map((route) => route.name)).toEqual(['first', 'third']); | CODE |
| CRITICAL | …o-router/src/__tests__/experimental-stack.test.ios.tsx | 228 | const homeTabKey = mockedScreens.Tabs.Screen.mock.calls.at(-1)![0].screenKey!; | CODE |
| CRITICAL | apps/test-suite/TestModules.ts | 166 | // 'java.util.Map expo.modules.interfaces.taskManager.TaskInterface.getOptions()' on a null object reference" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | docs/mdx-plugins/remark-export-headings.test.js | 7 | const { data } = transform(u('root', [u('text', 'lorem ipsum')])); | CODE |
| LOW⚡ | docs/mdx-plugins/remark-export-headings.test.js | 13 | const { data } = transform(u('root', [u('heading', [u('text', 'lorem ipsum')])])); | CODE |
| LOW⚡ | docs/mdx-plugins/remark-export-headings.test.js | 19 | 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.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| LOW | docs/public/static/data/v55.0.0/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"ContactField","vari | CODE |
| LOW | docs/public/static/data/v55.0.0/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"ContactField","vari | CODE |
| LOW | docs/public/static/data/v55.0.0/expo-sqlite.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"SecureFie | CODE |
| LOW | …ic/static/data/v55.0.0/expo-ui/swift-ui/textfield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"NativeTextF | CODE |
| LOW⚡ | docs/public/static/data/v56.0.0/expo-notifications.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| LOW | docs/public/static/data/v56.0.0/expo-contacts.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varian | CODE |
| LOW | docs/public/static/data/v56.0.0/expo-contacts.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varian | CODE |
| LOW | docs/public/static/data/v56.0.0/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","v | CODE |
| LOW | docs/public/static/data/v56.0.0/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","v | CODE |
| LOW | docs/public/static/data/v56.0.0/expo-sqlite.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/universal/textinput","variant":"project","kind":1,"children":[{"name":"TextInputP | CODE |
| LOW | …/static/data/v56.0.0/expo-ui/swift-ui/securefield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"NativeSec | CODE |
| LOW | …ic/static/data/v56.0.0/expo-ui/swift-ui/textfield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"NativeTextF | CODE |
| LOW | …ic/static/data/v56.0.0/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| LOW | docs/public/static/data/v56.0.0/expo-router/ui.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| LOW | docs/public/static/data/v57.0.0/expo-contacts.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varian | CODE |
| LOW | docs/public/static/data/v57.0.0/expo-contacts.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varian | CODE |
| LOW | docs/public/static/data/v57.0.0/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","v | CODE |
| LOW | docs/public/static/data/v57.0.0/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","v | CODE |
| LOW | docs/public/static/data/v57.0.0/expo-sqlite.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/universal/textinput","variant":"project","kind":1,"children":[{"name":"TextInputP | CODE |
| LOW | …/static/data/v57.0.0/expo-ui/swift-ui/securefield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"SecureFie | CODE |
| LOW | …ic/static/data/v57.0.0/expo-ui/swift-ui/textfield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"TextFieldPr | CODE |
| LOW | …ic/static/data/v57.0.0/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| LOW | docs/public/static/data/v57.0.0/expo-router/ui.json | 1 | {"schemaVersion":"2.0","name":"expo-router/ui","variant":"project","kind":1,"children":[{"name":"ExpoTabsNavigationProp" | CODE |
| LOW⚡ | …public/static/data/unversioned/expo-notifications.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| LOW | docs/public/static/data/unversioned/expo-contacts.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varian | CODE |
| LOW | docs/public/static/data/unversioned/expo-contacts.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varian | CODE |
| LOW | …public/static/data/unversioned/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","v | CODE |
| LOW | …public/static/data/unversioned/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","v | CODE |
| LOW | docs/public/static/data/unversioned/expo-sqlite.json | 1 | {"schemaVersion":"2.0","name":"expo-sqlite","variant":"project","kind":1,"children":[{"name":"addDatabaseChangeListener" | CODE |
| LOW | …atic/data/unversioned/expo-ui/universal/textinput.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/universal/textinput","variant":"project","kind":1,"children":[{"name":"TextInputP | CODE |
| LOW | …tic/data/unversioned/expo-ui/swift-ui/securefield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"SecureFie | CODE |
| LOW | …tatic/data/unversioned/expo-ui/swift-ui/textfield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"TextFieldPr | CODE |
| LOW | …tatic/data/unversioned/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| LOW⚡ | docs/public/static/data/v58.0.0/expo-notifications.json | 1 | {"schemaVersion":"2.0","name":"expo-notifications","variant":"project","kind":1,"children":[{"name":"AndroidAudioContent | CODE |
| LOW | docs/public/static/data/v58.0.0/expo-contacts.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varian | CODE |
| LOW | docs/public/static/data/v58.0.0/expo-contacts.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts","variant":"project","kind":1,"children":[{"name":"CalendarFormats","varian | CODE |
| LOW | docs/public/static/data/v58.0.0/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","v | CODE |
| LOW | docs/public/static/data/v58.0.0/expo-contacts-next.json | 1 | {"schemaVersion":"2.0","name":"expo-contacts-next","variant":"project","kind":1,"children":[{"name":"CalendarFormats","v | CODE |
| LOW | docs/public/static/data/v58.0.0/expo-sqlite.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/universal/textinput","variant":"project","kind":1,"children":[{"name":"TextInputP | CODE |
| LOW | …/static/data/v58.0.0/expo-ui/swift-ui/securefield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/securefield","variant":"project","kind":1,"children":[{"name":"SecureFie | CODE |
| LOW | …ic/static/data/v58.0.0/expo-ui/swift-ui/textfield.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/textfield","variant":"project","kind":1,"children":[{"name":"TextFieldPr | CODE |
| LOW | …ic/static/data/v58.0.0/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| LOW | …po/modules/calendar/next/mappers/CalendarMapperTest.kt | 33 | name = "user@example.com", | CODE |
| LOW | …po/modules/calendar/next/mappers/CalendarMapperTest.kt | 54 | Assert.assertEquals("user@example.com", result.accountName) | CODE |
| LOW | …po/modules/calendar/next/mappers/CalendarMapperTest.kt | 119 | accountName = "user@example.com", | CODE |
| LOW | …po/modules/calendar/next/mappers/CalendarMapperTest.kt | 155 | id = "user@example.com", | CODE |
| LOW | …po/modules/calendar/next/mappers/CalendarMapperTest.kt | 156 | name = "user@example.com", | CODE |
| LOW | …domain/repositories/calendar/CalendarRepositoryTest.kt | 54 | CalendarContract.Calendars.ACCOUNT_NAME to "user@example.com", | CODE |
| LOW | …domain/repositories/calendar/CalendarRepositoryTest.kt | 78 | Assert.assertEquals("user@example.com", entity.accountName) | CODE |
| LOW | …domain/repositories/calendar/CalendarRepositoryTest.kt | 258 | accountName = "user@example.com", | CODE |
| LOW | …domain/repositories/calendar/CalendarRepositoryTest.kt | 274 | Assert.assertEquals("user@example.com", uriSlot.captured.getQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME)) | CODE |
| 52 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/public/static/data/v55.0.0/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"VectorIconProps","variant" | CODE |
| LOW | docs/public/static/data/v55.0.0/expo-location.json | 1 | {"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia | CODE |
| MEDIUM | …ic/static/data/v55.0.0/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| MEDIUM | docs/public/static/data/v55.0.0/expo-router/link.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va | CODE |
| MEDIUM⚡ | docs/public/static/data/v56.0.0/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va | CODE |
| LOW | docs/public/static/data/v56.0.0/expo-location.json | 1 | {"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia | CODE |
| MEDIUM | …ic/static/data/v56.0.0/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| MEDIUM | docs/public/static/data/v56.0.0/expo-router/link.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va | CODE |
| MEDIUM⚡ | docs/public/static/data/v57.0.0/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"ActionDispatchedEvent","va | CODE |
| LOW | docs/public/static/data/v57.0.0/expo-location.json | 1 | {"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia | CODE |
| MEDIUM | …ic/static/data/v57.0.0/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| MEDIUM | docs/public/static/data/v57.0.0/expo-router/link.json | 1 | {"schemaVersion":"2.0","name":"expo-router/link","variant":"project","kind":1,"children":[{"name":"DismissalBoundsRect", | CODE |
| MEDIUM⚡ | docs/public/static/data/unversioned/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variant | CODE |
| MEDIUM⚡ | docs/public/static/data/unversioned/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variant | CODE |
| MEDIUM | docs/public/static/data/unversioned/expo-video.json | 1 | {"schemaVersion":"2.0","name":"expo-video","variant":"project","kind":1,"children":[{"name":"VideoPlayer","variant":"dec | CODE |
| MEDIUM | docs/public/static/data/unversioned/expo-video.json | 1 | {"schemaVersion":"2.0","name":"expo-video","variant":"project","kind":1,"children":[{"name":"VideoPlayer","variant":"dec | CODE |
| LOW | docs/public/static/data/unversioned/expo-location.json | 1 | {"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia | CODE |
| MEDIUM | …tatic/data/unversioned/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| MEDIUM | …s/public/static/data/unversioned/expo-router/link.json | 1 | {"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.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variant | CODE |
| MEDIUM⚡ | docs/public/static/data/v58.0.0/expo-router.json | 1 | {"schemaVersion":"2.0","name":"expo-router","variant":"project","kind":1,"children":[{"name":"attachRouteState","variant | CODE |
| MEDIUM | docs/public/static/data/v58.0.0/expo-video.json | 1 | {"schemaVersion":"2.0","name":"expo-video","variant":"project","kind":1,"children":[{"name":"VideoPlayer","variant":"dec | CODE |
| MEDIUM | docs/public/static/data/v58.0.0/expo-video.json | 1 | {"schemaVersion":"2.0","name":"expo-video","variant":"project","kind":1,"children":[{"name":"VideoPlayer","variant":"dec | CODE |
| LOW | docs/public/static/data/v58.0.0/expo-location.json | 1 | {"schemaVersion":"2.0","name":"expo-location","variant":"project","kind":1,"children":[{"name":"LocationAccuracy","varia | CODE |
| MEDIUM | …ic/static/data/v58.0.0/expo-ui/swift-ui/modifiers.json | 1 | {"schemaVersion":"2.0","name":"expo-ui/swift-ui/modifiers","variant":"project","kind":1,"children":[{"name":"ModifierCon | CODE |
| MEDIUM | docs/public/static/data/v58.0.0/expo-router/link.json | 1 | {"schemaVersion":"2.0","name":"expo-router/link","variant":"project","kind":1,"children":[{"name":"DismissalBoundsRect", | CODE |
| MEDIUM | packages/expo-asset/src/Asset.server.ts | 35 | // Essentially run the contents of downloadAsync here. | COMMENT |
| MEDIUM | …d/src/main/java/expo/modules/image/enums/ContentFit.kt | 65 | // which will create a seamless transition between various states. | COMMENT |
| MEDIUM | …d/src/main/java/expo/modules/image/enums/ContentFit.kt | 75 | // temporary upscaling is necessary to ensure a seamless transition. | COMMENT |
| MEDIUM | packages/@expo/cli/src/export/resolveOptions.ts | 45 | // Pass through so the more robust error message is shown. | COMMENT |
| MEDIUM | …ckages/@expo/config-plugins/src/ios/utils/Xcodeproj.ts | 87 | // placeholder for now! Make this more robust when we support applying config | COMMENT |
| MEDIUM | packages/@expo/metro-config/src/babel-transformer.ts | 363 | // NOTE(EvanBacon): We heavily leverage the caller functionality to mutate the babel config. | COMMENT |
| MEDIUM | …rc/react-navigation/bottom-tabs/views/BottomTabBar.tsx | 312 | // Absolutely position the tab bar so that the content is below it | COMMENT |
| MEDIUM | …trics/ios/CrashReporting/CrashReportSymbolicator.swift | 201 | // off by `vmaddr(__TEXT) - header`; the robust fix is to walk `LC_SEGMENT_64` for `__TEXT`. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/@expo/cli/src/start/interface/commandsTable.ts | 132 | print() { | CODE |
| HIGH | packages/@expo/cli/src/utils/qr.ts | 9 | print(): void; | CODE |
| HIGH | packages/@expo/cli/src/utils/qr.ts | 18 | print() { | CODE |
| HIGH⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 322 | print("Hello!") | CODE |
| HIGH⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 330 | print("Hello \\(name) - value[\\(value)]!") | CODE |
| HIGH⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 379 | print("value=\\(value)") | CODE |
| HIGH⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 404 | print("value=\\(value)") | CODE |
| HIGH⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 429 | print("value=\\(value)") | CODE |
| HIGH⚡ | apps/expo-go/tools/device-transformer/build-slim.js | 202 | print(JSON.stringify({ codeLength: __res.code.length, depNames: __res.depNames })); | CODE |
| HIGH⚡ | apps/expo-go/tools/device-transformer/build-slim.js | 203 | print(__res.code); | CODE |
| HIGH⚡ | apps/expo-go/tools/device-transformer/build-slim.js | 205 | print('TRANSFORM_ERROR: ' + String(err) + ' code=' + (err && err.code) + '\\n' + ((err && err.stack) || '')); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …Database/Migrations/UpdatesDatabaseMigration5To6.swift | 0 | create table "new_updates" ( "id" blob unique, "scope_key" text not null, "commit_time" integer not null, "runtime_versi | STRING |
| HIGH | …atabase/Migrations/UpdatesDatabaseMigration9To10.swift | 0 | create table "new_updates" ( "id" blob unique, "scope_key" text not null, "commit_time" integer not null, "runtime_versi | STRING |
| HIGH | …Database/Migrations/UpdatesDatabaseMigration6To7.swift | 0 | create table "new_updates" ( "id" blob unique, "scope_key" text not null, "commit_time" integer not null, "runtime_versi | STRING |
| HIGH | …Database/Migrations/UpdatesDatabaseMigration5To6.swift | 0 | create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time") | STRING |
| HIGH | …atabase/Migrations/UpdatesDatabaseMigration9To10.swift | 0 | create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time") | STRING |
| HIGH | …Database/Migrations/UpdatesDatabaseMigration6To7.swift | 0 | create unique index "index_updates_scope_key_commit_time" on "updates" ("scope_key", "commit_time") | STRING |
| HIGH | …Database/Migrations/UpdatesDatabaseMigration5To6.swift | 0 | create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id") | STRING |
| HIGH | …atabase/Migrations/UpdatesDatabaseMigration9To10.swift | 0 | create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id") | STRING |
| HIGH | …Database/Migrations/UpdatesDatabaseMigration6To7.swift | 0 | create index "index_updates_launch_asset_id" on "updates" ("launch_asset_id") | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 321 | func doSomething() { | CODE |
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 325 | func doSomething(forName name: String) -> Bool { | CODE |
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 329 | func doSomething(_ name: String, withValue value: String) { | CODE |
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 373 | func doSomething(_ value: String!) { | CODE |
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 378 | func doSomething(_ value: String!) { | CODE |
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 397 | func doSomething(_ value: String!) { | CODE |
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 402 | func doSomething(_ value: String!) { | CODE |
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 421 | func doSomething(_ value: String!) -> Bool { | CODE |
| LOW⚡ | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 427 | func doSomething(_ value: String!) -> Bool { | CODE |
| LOW | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 347 | func doSomething() { | CODE |
| LOW | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 357 | func doSomething() { | CODE |
| LOW | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 450 | func doSomething() { | CODE |
| LOW | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 458 | func doSomething() { | CODE |
| LOW | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 471 | func doSomething() { | CODE |
| LOW | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 483 | func doSomething() { | CODE |
| LOW | …@expo/config-plugins/src/ios/__tests__/codeMod-test.ts | 497 | func doSomething() { | CODE |
| LOW | …p/src/lib/__tests__/FileSystemChangeAggregator.test.ts | 80 | function getData(agg: FileSystemChangeAggregator) { | CODE |
| LOW | …c/plugins/__tests__/server-data-loaders-plugin.test.ts | 665 | async function getData(id) { | CODE |
| LOW | …c/plugins/__tests__/server-data-loaders-plugin.test.ts | 686 | async function getData(id) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/scripts/generate-markdown-pages-utils.test.ts | 55 | const markdown = '# Create a project\n\nLearn how to create a new Expo project.\n\nBody.'; | CODE |
| MEDIUM | docs/scripts/generate-markdown-pages-utils.test.ts | 63 | '# Create a project\n\nLearn how to create a new Expo project.\n\n<AgentInstructions>\n\n## Submitting Feedback\n\ | CODE |
| MEDIUM | docs/scripts/generate-markdown-pages-utils.test.ts | 948 | expect(md).toContain('# Create a project'); | CODE |
| MEDIUM | …xpo-modules-autolinking/scripts/ios/packages_config.rb | 5 | # 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.rb | 231 | # Create a new build script in the target, it's added as the last phase | COMMENT |
| MEDIUM | …modules-autolinking/scripts/ios/precompiled_modules.rb | 3 | # This module provides functionality to: | COMMENT |
| MEDIUM⚡ | …ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh | 242 | # Create the plist file if it doesn't exist | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/README.md | 272 | #### Step 1: Update the package's TypeDoc | COMMENT |
| LOW | docs/README.md | 307 | #### Step 2: Apply TypeDoc updates to expo/docs repo | COMMENT |
| LOW | docs/README.md | 329 | #### Step 3: See the changes in the docs repo | COMMENT |
| LOW | packages/precompile/README.md | 214 | ### Step 1: Analyze the Package | COMMENT |
| LOW | packages/precompile/README.md | 227 | ### Step 2: Create spm.config.json | COMMENT |
| LOW | packages/precompile/README.md | 314 | ### Step 3: Podspec (Usually No Changes Needed) | COMMENT |
| LOW | packages/precompile/README.md | 333 | ### Step 4: Build and Verify | COMMENT |
| LOW | …xpo-modules-autolinking/external-configs/ios/README.md | 54 | ### Step 1: Analyze the Package | COMMENT |
| LOW | …xpo-modules-autolinking/external-configs/ios/README.md | 96 | ### Step 2: Understand the Config Structure | COMMENT |
| LOW | …xpo-modules-autolinking/external-configs/ios/README.md | 149 | ### Step 3: Split Into Targets by Language (The Multi-Target Pattern) | COMMENT |
| LOW | …xpo-modules-autolinking/external-configs/ios/README.md | 200 | ### Step 4: Header File Mapping | COMMENT |
| LOW | …xpo-modules-autolinking/external-configs/ios/README.md | 219 | ### Step 5: Handle Swift-ObjC Interop | COMMENT |
| LOW⚡ | …modules-autolinking/scripts/ios/precompiled_modules.rb | 738 | # NOTE: This method is only used by ExpoModulesCore.podspec, which needs an inline | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .expo-agents/verify/prompt.md | 120 | **Then `<details>` blocks, each with a short `<summary>` label and a BLANK LINE after it**, in this order, omitting a | CODE |
| MEDIUM | .expo-agents/verify/critic.md | 26 | 21. **Pull-request body shape (verify mode).** `pr.md` past its first line must have the findings comment's shape: a vis | CODE |
| MEDIUM | packages/expo-app-intents/cli/src/init.ts | 925 | // 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.ts | 408 | // 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.ts | 810 | // The files that were left alone are reported, so a re-run over an existing scaffold does not | COMMENT |
| MEDIUM | …ckages/expo-app-intents/cli/src/__tests__/init.test.ts | 1035 | // `minimal` contributes no phrase, so the setup module is the file that proves the scaffold ran. | COMMENT |
| MEDIUM | …-app-intents/ios/Tests/ExpoAppIntentsModuleTests.swift | 29 | /// A scaffold with no App Shortcut phrases has no `AppShortcutsProvider`, so nothing registers a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ain/java/expo/modules/imagepicker/ImagePickerModule.kt | 180 | // We need to check if that is the case and overwrite the result. | COMMENT |
| LOW | …s/medialibrary/MediaLibraryPermissionPromiseWrapper.kt | 56 | // we need to check if the user granted partial access to the media library and overwrite the result. | COMMENT |
| LOW | …xt/permissions/MediaLibraryPermissionPromiseWrapper.kt | 56 | // 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.kt | 186 | // We aren't using the values returned above, because we need to check if the user has provided fine location perm | COMMENT |
| LOW | packages/expo-image/ios/ImageModule.swift | 256 | We need to check if the image exists in the cache first since `cachePath` will | CODE |
| LOW | packages/expo-font/src/FontHooks.ts | 21 | // 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.swift | 35 | // Deprecated, but still used internally. We need to check if the manifest is set, otherwise it will result in | COMMENT |
| LOW | …android/src/main/cpp/decorators/JSClassesDecorator.cpp | 71 | // We need to check if the constructor is still alive. | COMMENT |
| LOW | …li/src/start/platforms/android/AndroidDeviceManager.ts | 194 | // 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.tsx | 28 | // We need to check if the deferred index is not out of bounds | COMMENT |
| LOW | …ain/java/expo/modules/securestore/SecureStoreModule.kt | 278 | * Because of that we need to check if there are any keys stored with the old secure-store key format. | COMMENT |
| LOW | packages/expo-glass-effect/ios/GlassView.swift | 39 | // UIGlassEffect initialiser is crashing for iOS 26 beta versions for some reason, so we need to check if it's availab | COMMENT |
| LOW | packages/expo-glass-effect/ios/GlassContainer.swift | 19 | // UIGlassEffect initialiser is failing for iOS 26 beta versions for some reason, so we need to check if it's availabl | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …d/plugin/templates/ios/ReactNativeViewController.swift | 36 | print("Error loading React Native view: \(error)") | CODE |
| MEDIUM | …ources/ExpoModulesJSI/Runtime/JavaScriptCallback.swift | 383 | print("Error in a JavaScript callback: \(error)") | CODE |
| MEDIUM | …ources/ExpoModulesJSI/Runtime/JavaScriptCallback.swift | 421 | print("Error in a JavaScript callback: \(RuntimeLostError())") | CODE |
| MEDIUM | …ources/ExpoModulesJSI/Runtime/JavaScriptCallback.swift | 454 | print("Error in a JavaScript callback: \(RuntimeLostError())") | CODE |
| MEDIUM | …ources/ExpoModulesJSI/Runtime/JavaScriptCallback.swift | 556 | print("Error in a JavaScript callback: \(error)") | CODE |
| MEDIUM | …lugin/template-files/ios/ShareIntoViewController.swift | 80 | print("Error: Expo-sharing could not initialize UserDefaults with group: \(appGroupId)") | CODE |
| MEDIUM | …lugin/template-files/ios/ShareIntoViewController.swift | 88 | print("Error: Expo-sharing has failed to serialize shared data to JSON") | CODE |
| MEDIUM | …lugin/template-files/ios/ShareIntoViewController.swift | 217 | print("Error copying file: \(error)") | CODE |
| MEDIUM | …inimaltesterbrownfield/ReactNativeViewController.swift | 36 | print("Error loading React Native view: \(error)") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/public/robots.txt | 3 | # ai-input: retrieval and grounding for AI-generated answers. | COMMENT |
| HIGH | …mmunity/asyncstorage/NativeAsyncStorageModuleSpec.java | 3 | * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/expo-modules-jsi/apple/scripts/generate-modulemap.sh | 18 | # Usage: | COMMENT |
| LOW | …es/expo-modules-jsi/apple/scripts/build-xcframework.sh | 17 | # Usage: | COMMENT |
| LOW | packages/expo-modules-jsi/apple/scripts/test.sh | 18 | # Usage: | COMMENT |
| LOW | …o/e2e/image-comparison/inspector/ScreenInspectorIOS.ts | 261 | // Example usage | COMMENT |
| LOW | …o-workflow-testing/scripts/detect-prebuild-packages.sh | 5 | # Usage: | COMMENT |
| LOW | …xpo-workflow-testing/scripts/detect-platform-change.sh | 5 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …-modules-autolinking/scripts/ios/project_integrator.rb | 189 | # Read the file from disk rather than `build_settings.xcconfig`. Earlier `post_install` | COMMENT |
| LOW | …ckages/expo-dev-launcher/plugin/src/withDevLauncher.ts | 69 | # Check if NSBonjourServices exists | COMMENT |
| LOW | …ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh | 110 | # Check if a key exists in a plist file | COMMENT |
| LOW | …ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh | 254 | # Check if USE_GENERATED_DEFAULTS is explicitly set to false | COMMENT |
| LOW | …ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh | 287 | # Set USE_GENERATED_DEFAULTS to true | COMMENT |
| LOW | …ps/expo-go/ios/Build-Phases/generate-dynamic-macros.sh | 322 | # Check if this template should be skipped | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …o/modules/react-native-view-shot/lib/RNViewShot.web.js | 30 | // TODO: implement snapshotContentContainer option | COMMENT |
| LOW | …o/modules/react-native-view-shot/src/RNViewShot.web.ts | 37 | // TODO: implement snapshotContentContainer option | COMMENT |