The Firebase Command Line Tools
This report summarizes scanner evidence for firebase/firebase-tools, a TypeScript project with 4,486 GitHub stars. SynthScan examined 434,121 lines of code across 1829 source files, recording 473 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 1.3 (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? 423 finding(s).
Are imports declared and package/API names verified? 49 finding(s).
Are wrappers, guards, and repeated structures necessary? 358 finding(s).
Which changes need focused human review? 473 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 473 distinct pattern matches across 17 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 | firebase-vscode/webviews/components/EmulatorPanel.tsx | 51 | function FormatEmulatorRunningInfo({ infos }: { infos: EmulatorInfo[] }) { | CODE |
| LOW | firebase-vscode/webviews/components/EmulatorPanel.tsx | 71 | function RunningEmulatorControlButtons({ infos }: { infos: EmulatorInfo[] }) { | CODE |
| LOW | …/data-connect/data-connect-execution-results.entry.tsx | 14 | function DataConnectExecutionResultsApp() { | CODE |
| LOW | …ta-connect/data-connect-execution-parameters.entry.tsx | 20 | export function DataConnectExecutionArgumentsApp() { | CODE |
| LOW | firebase-vscode/src/analytics.ts | 238 | function addFirebaseBinaryMetadata(data?: Record<string, any> | undefined) { | CODE |
| LOW | firebase-vscode/src/core/config.ts | 115 | function notifyFirebaseConfigListChanged(broker: ExtensionBrokerImpl) { | CODE |
| LOW | firebase-vscode/src/test/utils/sidebar.ts | 7 | export async function switchToFirebaseSidebarFrame(workbench: Workbench) { | CODE |
| LOW | firebase-vscode/src/data-connect/core-compiler.ts | 45 | function convertGQLErrorToDiagnostic( | CODE |
| LOW | firebase-vscode/src/data-connect/core-compiler.ts | 73 | function warningLevelToDiagnosticSeverity(level?: WarningLevel): DiagnosticSeverity { | CODE |
| LOW | firebase-vscode/src/data-connect/sdk-generation.ts | 63 | async function selectAppFolderAndRunInitSdk() { | CODE |
| LOW | firebase-vscode/src/data-connect/ad-hoc-mutations.ts | 60 | function buildRecursiveObjectQuery( | CODE |
| LOW | firebase-vscode/src/data-connect/ad-hoc-mutations.ts | 257 | function getDefaultScalarValueNode(type: string): ValueNode | undefined { | CODE |
| LOW | firebase-vscode/src/data-connect/config.ts | 49 | export async function registerDataConnectConfigs( | CODE |
| LOW | scripts/gen-auth-api-spec.ts | 311 | function pushServersDownToEachPath(openapi3: any): void { | CODE |
| LOW | …pts/storage-emulator-integration/rules/runtime.test.ts | 24 | function createFakeResourceMetadata(params: { | CODE |
| LOW | scripts/extensions-scraper/index.ts | 22 | export function extractReplacementFromReadme(readmeContent: string): string | undefined { | CODE |
| LOW | scripts/hosting-tests/rewrites-tests/tests.ts | 59 | function writeHelloWorldFunctionWithRegions( | CODE |
| LOW | src/getDefaultDatabaseInstance.ts | 8 | export async function getDefaultDatabaseInstance(project: string): Promise<string> { | CODE |
| LOW | src/utils.ts | 337 | export function getFunctionsEventProvider(eventType: string): string { | CODE |
| LOW | src/utils.ts | 649 | export function assertIsStringOrUndefined( | CODE |
| LOW | src/experiments.ts | 282 | export function experimentNameAutocorrect(malformed: string): string[] { | CODE |
| LOW | src/experiments.ts | 338 | export function enableExperimentsFromCliEnvVariable(): void { | CODE |
| LOW⚡ | src/functionsConfig.ts | 42 | export function getFunctionsConfigDeprecationMessage(): string { | CODE |
| LOW⚡ | src/functionsConfig.ts | 46 | export function logFunctionsConfigDeprecationWarning(): void { | CODE |
| LOW⚡ | src/functionsConfig.ts | 50 | export function ensureLegacyRuntimeConfigCommandsEnabled(): void { | CODE |
| LOW | src/accountImporter.ts | 181 | function validateRequiredParameters(options: any): any { | CODE |
| LOW | src/appUtils.ts | 170 | export function getAllDepsFromPackageJson(packageJson: PackageJSON) { | CODE |
| LOW | src/appUtils.ts | 177 | async function packageJsonToAdminOrWebApp( | CODE |
| LOW | src/appUtils.ts | 246 | function getFrameworksFromPackageJson(packageJson: PackageJSON): Framework[] { | CODE |
| LOW | src/appUtils.ts | 258 | export function extractAppIdentifiersFlutter(fileContent: string): AppIdentifier[] { | CODE |
| LOW | src/appUtils.ts | 305 | export function extractAppIdentifiersAndroid(fileContent: string): AppIdentifier[] { | CODE |
| LOW | src/auth.ts | 317 | async function getTokensFromAuthorizationCode( | CODE |
| LOW | src/auth.ts | 384 | async function getGithubTokensFromAuthorizationCode(code: string, callbackUrl: string) { | CODE |
| LOW | src/auth.ts | 755 | function findAccountByRefreshToken(refreshToken: string): Account | undefined { | CODE |
| LOW | src/init/features/functions.spec.ts | 17 | function createExistingTestSetupAndConfig(): { setup: Setup; config: Config } { | CODE |
| LOW | src/init/features/database.ts | 61 | async function createDefaultDatabaseInstance(project: string): Promise<DatabaseInstance> { | CODE |
| LOW | src/init/features/database.ts | 109 | async function initializeDatabaseInstance(projectId: string): Promise<DatabaseInstance | null> { | CODE |
| LOW | src/init/features/dataconnect/resolver.ts | 141 | export function addSchemaToDataConnectYaml( | CODE |
| LOW | src/init/features/dataconnect/index.ts | 591 | async function promptForExistingServices( | CODE |
| LOW | src/init/features/dataconnect/sdk.ts | 365 | export function addSdkGenerateToConnectorYaml( | CODE |
| LOW | src/init/features/dataconnect/sdk.ts | 482 | function dedupeAppsByPlatformAndDirectory(apps: App[]): App[] { | CODE |
| LOW | src/init/features/ailogic/utils.ts | 69 | export function validateProjectNumberMatch( | CODE |
| LOW | src/init/features/hosting/github.ts | 300 | function writeChannelActionYMLFile( | CODE |
| LOW | src/init/features/hosting/github.ts | 369 | function writeDeployToProdActionYMLFile( | CODE |
| LOW | src/init/features/hosting/github.ts | 571 | async function createServiceAccountAndKeyWithRetry( | CODE |
| LOW | src/init/features/hosting/github.ts | 613 | async function createServiceAccountAndKey( | CODE |
| LOW | src/init/features/hosting/github.ts | 680 | async function encryptServiceAccountJSON(serviceAccountJSON: string, key: string): Promise<string> { | CODE |
| LOW | src/init/features/functions/utils.ts | 1 | export function templateWithSubbedResolverId(resolverId: string, template: string): string { | CODE |
| LOW | src/init/features/aitools/promptUpdater.ts | 165 | export function generateFeaturePromptSection(feature: string): string { | CODE |
| LOW | src/database/api.ts | 8 | export function realtimeOriginOrEmulatorOrCustomUrl(host: string): string { | CODE |
| LOW | src/database/api.ts | 20 | export function realtimeOriginOrCustomUrl(host: string): string { | CODE |
| LOW | src/firebase_studio/migrate.ts | 33 | async function setupAntigravityMcpServer( | CODE |
| LOW | src/apptesting/invokeTests.ts | 27 | function buildInvokeTestCasesRequest( | CODE |
| LOW | src/crashlytics/sourcemap.ts | 256 | export async function extractSourceMapFileField(mapFilePath: string): Promise<string | undefined> { | CODE |
| LOW | src/crashlytics/sourcemap.ts | 302 | export async function findHiddenSourceMapTarget( | CODE |
| LOW | src/crashlytics/sourcemap.ts | 572 | function getOrListAllMappingFiles( | CODE |
| LOW | src/crashlytics/sourcemap.ts | 587 | async function findExistingSourceMapName( | CODE |
| LOW | src/crashlytics/profilingManager.ts | 135 | export async function getProfilingManagerConfig(appId: string): Promise<ProfilingManagerConfig> { | CODE |
| LOW | src/crashlytics/profilingManager.ts | 158 | export async function updateProfilingManagerConfig( | CODE |
| LOW | src/crashlytics/profilingManager.ts | 191 | export async function ensureHeapDumpStorageBucket( | CODE |
| 297 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mockdata/function_source_v1.txt | 1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ac lectus dolor. Fusce luctus non leo ac tempor. Donec int | CODE |
| LOW | mockdata/function_source_v1.txt | 1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ac lectus dolor. Fusce luctus non leo ac tempor. Donec int | CODE |
| LOW | scripts/webframeworks-deploy-tests/tests.ts | 354 | expect(await response.json()).to.eql({ name: "John Doe" }); | CODE |
| LOW | …s/webframeworks-deploy-tests/nextjs/pages/api/hello.ts | 12 | res.status(200).json({ name: 'John Doe' }) | CODE |
| LOW | src/auth.spec.ts | 52 | email: "test@test.com", | CODE |
| LOW | src/auth.spec.ts | 84 | email: "test@test.com", | CODE |
| LOW | src/auth.spec.ts | 156 | email: "test@test.com", | CODE |
| LOW | src/auth.spec.ts | 169 | expect(() => assertAccount("test@test.com")).to.not.throw(); | CODE |
| LOW | src/crashlytics/alerts.spec.ts | 27 | const userEmail = "user@example.com"; | CODE |
| LOW | src/crashlytics/onboarding.spec.ts | 66 | requireAuthStub = sinon.stub(requireAuth, "requireAuth").resolves("user@example.com"); | CODE |
| LOW | src/crashlytics/onboarding.spec.ts | 132 | "user@example.com", | CODE |
| LOW | src/apphosting/secrets/index.spec.ts | 656 | prompt.input.resolves("user@example.com"); | CODE |
| LOW | src/deploy/functions/ensure.spec.ts | 187 | ["foo@bar.com"], | CODE |
| LOW | src/deploy/functions/ensure.spec.ts | 193 | serviceAccounts: ["foo@bar.com"], | CODE |
| LOW⚡ | src/gcp/auth.spec.ts | 64 | const userInfo = { localId: "test-uid", email: "test@test.com" }; | CODE |
| LOW⚡ | src/gcp/auth.spec.ts | 65 | const expectedUserInfo = { uid: "test-uid", email: "test@test.com" }; | CODE |
| LOW⚡ | src/gcp/auth.spec.ts | 70 | expression: [{ email: "test@test.com" }], | CODE |
| LOW⚡ | src/gcp/auth.spec.ts | 75 | const result = await auth.findUser(PROJECT_ID, "test@test.com"); | CODE |
| LOW | src/gcp/auth.spec.ts | 112 | expression: [{ email: "test@test.com" }], | CODE |
| LOW | src/gcp/auth.spec.ts | 117 | await expect(auth.findUser(PROJECT_ID, "test@test.com")).to.be.rejectedWith("No users found"); | CODE |
| LOW | src/gcp/auth.spec.ts | 219 | email: "test@test.com", | CODE |
| LOW | src/gcp/auth.spec.ts | 224 | email: "test@test.com", | CODE |
| LOW | src/gcp/auth.spec.ts | 257 | email: "test@test.com", | CODE |
| LOW | src/gcp/cloudmonitoring.spec.ts | 71 | labels: { email_address: "user@example.com" }, | CODE |
| LOW | src/gcp/cloudmonitoring.spec.ts | 77 | 'type = "email" AND labels.email_address = "user@example.com" AND user_labels.is_firebase_channel = "true"'; | CODE |
| LOW | src/gcp/cloudmonitoring.spec.ts | 102 | labels: { email_address: "user@example.com" }, | CODE |
| LOW | src/functions/iac/terraform.spec.ts | 65 | expect(tf.serviceAccount("foo@bar.com")).to.equal("foo@bar.com"); | CODE |
| LOW | src/commands/remoteconfig-versions-list.spec.ts | 39 | updateUser: { email: "foo@bar.com" }, | CODE |
| LOW | src/commands/remoteconfig-versions-list.spec.ts | 46 | expect(output).to.include("foo@bar.com"); | CODE |
| LOW | src/commands/login.spec.ts | 78 | user: { email: "user@example.com" }, | CODE |
| LOW | src/commands/login.spec.ts | 79 | tokens: { refresh_token: "fake-token" }, | CODE |
| LOW | src/commands/apps-create.spec.ts | 39 | return { email: "user@example.com" }; | CODE |
| LOW | src/commands/apps-create.spec.ts | 42 | return { refresh_token: "fake_token" }; | CODE |
| LOW | src/serve/functions.spec.ts | 37 | user: { email: "test@test.com" }, | CODE |
| LOW | src/emulator/auth/cloudFunctions.spec.ts | 43 | email: "user@example.com", | CODE |
| LOW | src/emulator/auth/cloudFunctions.spec.ts | 74 | email: "user@example.com", | CODE |
| LOW | src/emulator/auth/cloudFunctions.spec.ts | 94 | email: "user@example.com", | CODE |
| LOW | src/emulator/auth/operations.ts | 2306 | name: user.email || "user@example.com", | CODE |
| LOW | src/emulator/auth/idp.spec.ts | 1104 | name: "Jane Doe", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/deploy/extensions/errors.ts | 23 | print(): void { | CODE |
| HIGH | src/deploy/functions/deploy.ts | 205 | * @return True IFF wantBackend + haveBackend are the same | COMMENT |
| HIGH | src/extensions/askUserForEventsConfig.ts | 18 | * @return True if the response is valid | COMMENT |
| HIGH | src/extensions/askUserForParam.ts | 36 | * @return True if the user's response is valid | COMMENT |
| HIGH | src/functions/env.ts | 295 | * @return True if there are any user-specified environment variables | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/functions-deploy-tests/tests.ts | 321 | // retryConfig: { | COMMENT |
| LOW | scripts/storage-emulator-integration/conformance/env.ts | 21 | // | COMMENT |
| LOW | scripts/triggers-end-to-end-tests/tests.ts | 521 | // once the root cause is identified. | COMMENT |
| LOW | .github/workflows/node-test.yml | 81 | working-directory: firebase-vscode | COMMENT |
| LOW | .github/workflows/node-test.yml | 101 | # with: | COMMENT |
| LOW | .github/workflows/node-test.yml | 121 | # - run: npm ci | COMMENT |
| LOW | templates/banner.txt | 1 | COMMENT | |
| LOW | templates/init/apphosting/apphosting.yaml | 1 | # Settings for Backend (on Cloud Run). | COMMENT |
| LOW | templates/init/apphosting/apphosting.yaml | 21 | # You can create secrets with the CLI command `firebase apphosting:secrets:set <secretName>`. | COMMENT |
| LOW | templates/init/firestore/firestore.indexes.json | 1 | { | COMMENT |
| LOW | templates/init/firestore/firestore.indexes.json | 21 | // }, | COMMENT |
| LOW | templates/init/firestore/firestore.indexes.json | 41 | // "apiScope": "MONGODB_COMPATIBLE_API", | COMMENT |
| LOW | templates/init/functions/python/main.py | 1 | # Welcome to Cloud Functions for Firebase for Python! | COMMENT |
| LOW | templates/init/functions/python/main.py | 21 | # return https_fn.Response("Hello world!") | COMMENT |
| LOW | templates/init/functions/dart/analysis_options.yaml | 1 | # This file configures the static analysis results for your project (errors, | COMMENT |
| LOW | templates/init/functions/dart/analysis_options.yaml | 21 | COMMENT | |
| LOW | templates/init/functions/typescript/index-kit.ts | 21 | // kit. Learn more about these options and additional configurations at: | COMMENT |
| LOW | templates/init/functions/typescript/index.ts | 21 | // `maxInstances` option in the function's options, e.g. | COMMENT |
| LOW | templates/init/functions/javascript/index.js | 21 | // functions should each use functions.runWith({ maxInstances: 10 }) instead. | COMMENT |
| LOW | templates/extensions/extension.yaml | 21 | sourceUrl: https://github.com/ORG_OR_USER/REPO_NAME | COMMENT |
| LOW | src/track.ts | 301 | // https://support.google.com/analytics/answer/9191807 | COMMENT |
| LOW | src/streamJson.ts | 1 | // stream-chain and stream-json are ESM-only packages. This CLI is compiled to | COMMENT |
| LOW | src/fsAsync.spec.ts | 1 | import { expect } from "chai"; | COMMENT |
| LOW | src/command.ts | 181 | COMMENT | |
| LOW | …s/firebase/storage-resize-images@0.1.18/extension.yaml | 1 | # Copyright 2019 Google LLC | COMMENT |
| LOW | src/deploy/functions/containerCleaner.ts | 121 | .replace(/^[A-Z]/, (first) => `${first.toLowerCase()}-${first.toLowerCase()}`) | COMMENT |
| LOW | src/deploy/functions/containerCleaner.ts | 141 | // - project "my-cool-project" -> "my--cool--project" | COMMENT |
| LOW | src/deploy/functions/containerCleaner.ts | 201 | // +- <hash> (tags: <FuncName>_version-<#>) | COMMENT |
| LOW | src/deploy/functions/build.ts | 81 | // Defining a StringParam with { param: "FOO" } declares that "{{ params.FOO }}" is a valid | COMMENT |
| LOW | src/deploy/functions/runtimes/node/index.ts | 161 | private findFunctionsBinary(): string { | COMMENT |
| LOW | src/mcp/prompts/firestore/generate_security_rules.ts | 101 | // Document ID: [pattern] | COMMENT |
| LOW | src/gcp/pubsub.ts | 41 | COMMENT | |
| LOW | src/emulator/functionsEmulatorShared.ts | 281 | * Create a path that used to create a tempfile for IPC over socket files. | COMMENT |
| LOW | src/emulator/controller.ts | 281 | // "emulators": { | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | templates/firebase-studio-export/workflows/cleanup.md | 6 | # Step 1: Check Compilation | COMMENT |
| LOW⚡ | templates/firebase-studio-export/workflows/cleanup.md | 10 | # Step 2: Cleanup Genkit config | COMMENT |
| LOW⚡ | templates/firebase-studio-export/workflows/cleanup.md | 14 | # Step 3: Cleanup dev.nix | COMMENT |
| LOW⚡ | templates/firebase-studio-export/workflows/cleanup.md | 18 | # Step 4: Cleanup GEMINI.md | COMMENT |
| LOW | src/gcp/cloudsql/permissionsSetup.ts | 116 | // Step 0: Check current user can run setup and upsert IAM / P4SA users | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 343 | // Step 1: Our usual setup which creates necessary roles, transfers schema ownership, and gives nessary grants. | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 346 | // Step 2: Grant non firebase owners the writer role before changing the table owners. | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 351 | // Step 3: Alter table owners permissions | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 384 | // Step 1: Grant firebasesuperuser access to the original owner | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 393 | // Step 2: Using firebasesuperuser, setup reader and writer permissions on existing tables and setup default permissio | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 398 | // Step 3: Grant firebase reader and writer roles access to any new tables created by found owner. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ge-emulator-integration/conformance/gcs-js-sdk.test.ts | 723 | ).to.eventually.be.rejected.and.have.property("code", 501); | CODE |
| CRITICAL | src/frameworks/compose/driver/local.ts | 34 | const [cmd, ...args] = this.spec.detectedCommands.build.cmd.split(" "); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .agent/skills/firebase-tools-pr-review/SKILL.md | 23 | - [ ] **No AI/Agent Junk**: Unused comment blocks, residual issue numbers, or boilerplate generated by AI agents are str | CODE |
| HIGH | src/env.ts | 35 | // 2. Specific agents (ordered as requested) | COMMENT |
| HIGH | src/deploy/functions/runtimes/discovery/v1alpha1.ts | 209 | return Array.from(new Set(roles)); // Deduplicate as requested | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/gcp/cloudsql/permissionsSetup.ts | 116 | // Step 0: Check current user can run setup and upsert IAM / P4SA users | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 343 | // Step 1: Our usual setup which creates necessary roles, transfers schema ownership, and gives nessary grants. | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 346 | // Step 2: Grant non firebase owners the writer role before changing the table owners. | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 351 | // Step 3: Alter table owners permissions | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 384 | // Step 1: Grant firebasesuperuser access to the original owner | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 393 | // Step 2: Using firebasesuperuser, setup reader and writer permissions on existing tables and setup default permissio | COMMENT |
| LOW⚡ | src/gcp/cloudsql/permissionsSetup.ts | 398 | // Step 3: Grant firebase reader and writer roles access to any new tables created by found owner. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | firebase-vscode/src/data-connect/ad-hoc-mutations.ts | 39 | // TODO(hlshen): Revamp makeQuery to utilize live schema, and built out an AST instead of construction the query thr | COMMENT |
| MEDIUM | src/unzip.ts | 139 | // Converting both paths to lowercase on win32 ensures robust prefix checking. | COMMENT |
| MEDIUM | src/emulator/apphosting/serve.ts | 61 | // NOTE: this is not robust, a command could be a wrapper around another command and we cannot | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | standalone/firepit.js | 869 | As discussed above, whether running the firepit binary results in a Node.js runtime or the | CODE |
| MEDIUM | templates/init/functions/dart/analysis_options.yaml | 9 | # If you want a smaller set of lints you can change this to specify | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/emulator/auth/handlers.ts | 27 | instructions: `Please modify the URL to specify an apiKey, such as ...&apiKey=YOUR_API_KEY`, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/dataconnect/load.ts | 216 | // TODO: Add validation | COMMENT |
| LOW | src/commands/hosting-channel-deploy.ts | 66 | // TODO: implement --open. | COMMENT |
| LOW | src/emulator/extensionsEmulator.ts | 173 | // TODO: Add logging during this so it is clear what is happening. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/functions-deploy-tests/run.sh | 7 | # Create a secret for testing if it doesn't exist | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/webframeworks-deploy-tests/angular/README.md | 9 | ## Code scaffolding | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | templates/init/functions/python/main.py | 5 | CODE | |
| LOW | templates/init/functions/python/main.py | 7 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/publish/firebase-docker-image/promote.sh | 78 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/emulator/eventarcEmulatorUtils.ts | 50 | function getData(ce: any): any { | CODE |