Skip to content

Commit 2ae9410

Browse files
committed
Merge branch 'master' into inlined.run-functions-exp
2 parents ec92c97 + 39145d7 commit 2ae9410

File tree

257 files changed

+11517
-4349
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

257 files changed

+11517
-4349
lines changed

.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ module.exports = {
4747

4848
"@typescript-eslint/no-invalid-this": "error",
4949
"@typescript-eslint/no-unused-vars": "error", // Unused vars should not exist.
50+
"@typescript-eslint/require-await": "off", // sometimes async functions don't do await stuff for valid reasons.
5051
"no-invalid-this": "off", // Turned off in favor of @typescript-eslint/no-invalid-this.
5152
"no-unused-vars": "off", // Off in favor of @typescript-eslint/no-unused-vars.
5253
eqeqeq: ["error", "always", { null: "ignore" }],
@@ -135,7 +136,6 @@ module.exports = {
135136
// TODO(jamesdaniels): add this to overrides instead
136137
ignorePatterns: [
137138
"src/dynamicImport.js",
138-
"src/emulator/dataconnect/pg-gateway",
139139
"scripts/webframeworks-deploy-tests/nextjs/**",
140140
"scripts/webframeworks-deploy-tests/angular/**",
141141
"scripts/frameworks-tests/vite-project/**",

.github/ISSUE_TEMPLATE/mcp.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: "🤖 MCP Server"
3+
about: Report bugs or request features for the Firebase MCP Server.
4+
title: "[MCP]"
5+
labels: "api: mcp"
6+
assignees: ""
7+
---
8+
9+
<!-- DO NOT DELETE
10+
validate_template=true
11+
template_path=.github/ISSUE_TEMPLATE/mcp.md
12+
-->
13+
14+
## Summary
15+
16+
<!-- what is your bug / feature request / feedback? -->
17+
18+
## Bug Info <!-- please fill this out if you have a bug -->
19+
20+
- **Affected Tool(s):** <!-- Which specific tool(s) were you using when you encountered the issue? -->
21+
- **MCP Client:** <!-- e.g. "Cursor v0.50.0" -->
22+
- **Operating System:** <!-- e.g. "Windows 11" or "macOS Sequoia" -->
23+
24+
### Steps to Reproduce
25+
26+
<!-- write a detailed description of how to reproduce>

CHANGELOG.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
1-
- Changed artifact registry cleanup policy error to warn for CI/CD workloads #8513
2-
- Enhance firebase init apphosting to support local source deploys. (#8479)
3-
- Fixed issue where `firebase init hosting:github` didn't correctly parse the repo input. (#8536)
4-
- Add GCP API client functions to support App Hosting deploy from source feature. (#8545)
1+
- Updated the Data Connect emulator to use pglite 0.3.x and Postgres 17, which fixes some crashes related to wire protocol inconsistencies. (#8679, #8658)
2+
- Fixed an issue where the IAM enablement for GenKit monitoring would try to change an invalid service account. (#8756)

firebase-vscode/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ resources/dist
55
.vscode-test
66
.wdio-vscode-service
77
logs
8-
!*.tgz
8+
!*.tgz
9+
prebuilt-extensions

firebase-vscode/.vscodeignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ node_modules/
2020
dist/test/
2121
*.tgz
2222
package-lock.json
23-
.wdio-vscode-service/
23+
.wdio-vscode-service/
24+
prebuilt-extensions/

firebase-vscode/CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
## NEXT
22

3+
- [Changed] Graphql Syntax Highlighter is now an extension dependency
4+
5+
## 1.4.1
6+
7+
- Update internal `firebase-tools` dependency to 14.6.0
8+
- [Changed] Updated Gemini Tool name to @FirebaseDataConnect
9+
10+
## 1.4.0
11+
12+
- Update internal `firebase-tools` dependency to 14.4.0
13+
- [Added] @data-connect tool callable from the Gemini Code Assist extension.
14+
315
## 1.3.1
416

517
- Updated internal `firebase-tools` dependency to 14.2.1

firebase-vscode/common/messaging/protocol.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ export interface WebviewToExtensionParamsMap {
109109
/** Clears data from a running data connect emulator */
110110
"fdc.clear-emulator-data": void;
111111

112+
"firebase.activate.gemini": void;
113+
112114
// Initialize "result" tab.
113115
getDataConnectResults: void;
114116

firebase-vscode/package-lock.json

Lines changed: 23 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

firebase-vscode/package.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
"publisher": "GoogleCloudTools",
55
"icon": "./resources/firebase_dataconnect_logo.png",
66
"description": "Firebase Data Connect for VSCode",
7-
"version": "1.3.1",
7+
"version": "1.4.1",
88
"engines": {
99
"vscode": "^1.69.0"
1010
},
1111
"repository": "https://github.com/firebase/firebase-tools",
1212
"sideEffects": false,
13+
"extensionDependencies": [
14+
"google.geminicodeassist",
15+
"graphql.vscode-graphql-syntax"
16+
],
1317
"categories": [
1418
"Other"
1519
],
@@ -213,6 +217,8 @@
213217
"test-compile": "npm run copyfiles && webpack --config src/test/webpack.test.js",
214218
"lint": "eslint src --ext ts",
215219
"test": "npm run test:unit && npm run test:e2e",
220+
"install:extensions": "code-server --install-extension Google.geminicodeassist --extensions-dir ./prebuilt-extensions/ && code-server --install-extension graphql.vscode-graphql-syntax --extensions-dir ./prebuilt-extensions/",
221+
"pretest:e2e": "curl -fsSL https://code-server.dev/install.sh | sh -s -- --edge && npm run install:extensions",
216222
"pretest:unit": "npm run test-compile && tsc -p src/test/tsconfig.test.json",
217223
"test:unit": "node ./dist/test/firebase-vscode/src/test/runTest.js",
218224
"test:e2e": "npm run test:e2e:empty && npm run test:e2e:fishfood",

firebase-vscode/src/analytics.ts

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,13 @@ export enum DATA_CONNECT_EVENT_NAME {
3232
START_EMULATORS = "start_emulators",
3333
AUTO_COMPLETE = "auto_complete",
3434
SESSION_CHAR_COUNT = "session_char_count",
35-
EMULATOR_EXPORT ="emulator_export",
35+
EMULATOR_EXPORT = "emulator_export",
3636
SETUP_FIREBASE_BINARY = "setup_firebase_binary",
37+
GEMINI_ERROR = "gemini_error",
38+
GEMINI_OPERATION_CALL = "gemini_operation_call",
39+
GEMINI_SCHEMA_CALL = "gemini_schema_call",
40+
GEMINI_SUCCESS = "gemini_success",
41+
TRY_GEMINI_CLICKED = "try_gemini_clicked",
3742
}
3843

3944
export class AnalyticsLogger {
@@ -42,9 +47,9 @@ export class AnalyticsLogger {
4247
private sessionCharCount = 0; // Track total chars for the session
4348

4449
constructor(context: vscode.ExtensionContext) {
45-
this.logger = monospaceEnv.value.isMonospace ? new IDXLogger(new GA4TelemetrySender(pluginLogger), context) : env.createTelemetryLogger(
46-
new GA4TelemetrySender(pluginLogger),
47-
);
50+
this.logger = monospaceEnv.value.isMonospace
51+
? new IDXLogger(new GA4TelemetrySender(pluginLogger), context)
52+
: env.createTelemetryLogger(new GA4TelemetrySender(pluginLogger));
4853

4954
let subscriptions: vscode.Disposable[] = [
5055
vscode.workspace.onDidChangeTextDocument(
@@ -149,13 +154,15 @@ export class AnalyticsLogger {
149154
}
150155

151156
export class IDXLogger {
152-
constructor(private sender: GA4TelemetrySender, private context: vscode.ExtensionContext) {}
157+
constructor(
158+
private sender: GA4TelemetrySender,
159+
private context: vscode.ExtensionContext,
160+
) {}
153161
public logUsage(eventName: string, data?: any) {
154162
const packageJson = this.context.extension.packageJSON;
155163
data = {
156164
...data,
157-
extversion: packageJson.version,
158-
extname: "idx",
165+
...getAnalyticsContext(this.context),
159166
isidx: "true",
160167
};
161168
this.sender.sendEventData(eventName, data);
@@ -207,6 +214,15 @@ class GA4TelemetrySender implements TelemetrySender {
207214
}
208215
}
209216

217+
export function getAnalyticsContext(context: vscode.ExtensionContext) {
218+
const packageJson = context.extension.packageJSON;
219+
220+
return {
221+
extversion: packageJson.version,
222+
extname: monospaceEnv.value.isMonospace ? "idx" : "vscode",
223+
};
224+
}
225+
210226
function addFirebaseBinaryMetadata(data?: Record<string, any> | undefined) {
211227
const settings = getSettings();
212228
return { ...data, binary_kind: settings.firebaseBinaryKind };

0 commit comments

Comments
 (0)