firebase-tools 14.11.1 → 14.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/lib/apptesting/ensureProjectConfigured.js +4 -3
  2. package/lib/commands/ext-export.js +1 -1
  3. package/lib/commands/login.js +2 -2
  4. package/lib/deploy/functions/params.js +4 -0
  5. package/lib/mcp/errors.js +7 -1
  6. package/lib/mcp/index.js +46 -45
  7. package/lib/mcp/tools/apphosting/fetch_logs.js +22 -22
  8. package/lib/mcp/tools/apphosting/list_backends.js +10 -10
  9. package/lib/mcp/tools/auth/disable_user.js +7 -7
  10. package/lib/mcp/tools/auth/get_user.js +6 -6
  11. package/lib/mcp/tools/auth/index.js +10 -10
  12. package/lib/mcp/tools/auth/list_users.js +6 -6
  13. package/lib/mcp/tools/auth/set_claims.js +7 -7
  14. package/lib/mcp/tools/auth/set_sms_region_policy.js +6 -6
  15. package/lib/mcp/tools/core/consult_assistant.js +6 -6
  16. package/lib/mcp/tools/core/create_android_sha.js +9 -9
  17. package/lib/mcp/tools/core/create_app.js +7 -7
  18. package/lib/mcp/tools/core/create_project.js +13 -13
  19. package/lib/mcp/tools/core/get_admin_sdk_config.js +7 -7
  20. package/lib/mcp/tools/core/get_environment.js +8 -8
  21. package/lib/mcp/tools/core/get_project.js +5 -5
  22. package/lib/mcp/tools/core/get_sdk_config.js +9 -9
  23. package/lib/mcp/tools/core/index.js +24 -24
  24. package/lib/mcp/tools/core/init.js +8 -8
  25. package/lib/mcp/tools/core/list_apps.js +6 -6
  26. package/lib/mcp/tools/core/list_projects.js +6 -6
  27. package/lib/mcp/tools/core/update_environment.js +10 -10
  28. package/lib/mcp/tools/crashlytics/index.js +2 -2
  29. package/lib/mcp/tools/crashlytics/list_top_issues.js +6 -6
  30. package/lib/mcp/tools/dataconnect/emulator.js +6 -6
  31. package/lib/mcp/tools/dataconnect/execute_graphql.js +10 -10
  32. package/lib/mcp/tools/dataconnect/execute_graphql_read.js +10 -10
  33. package/lib/mcp/tools/dataconnect/execute_mutation.js +13 -13
  34. package/lib/mcp/tools/dataconnect/execute_query.js +13 -13
  35. package/lib/mcp/tools/dataconnect/generate_operation.js +8 -8
  36. package/lib/mcp/tools/dataconnect/generate_schema.js +6 -6
  37. package/lib/mcp/tools/dataconnect/get_connector.js +8 -8
  38. package/lib/mcp/tools/dataconnect/get_schema.js +8 -8
  39. package/lib/mcp/tools/dataconnect/index.js +18 -18
  40. package/lib/mcp/tools/dataconnect/list_services.js +5 -5
  41. package/lib/mcp/tools/firestore/delete_document.js +13 -13
  42. package/lib/mcp/tools/firestore/get_documents.js +13 -13
  43. package/lib/mcp/tools/firestore/list_collections.js +9 -9
  44. package/lib/mcp/tools/firestore/query_collection.js +13 -13
  45. package/lib/mcp/tools/index.js +18 -18
  46. package/lib/mcp/tools/messaging/index.js +2 -2
  47. package/lib/mcp/tools/messaging/send_message.js +7 -7
  48. package/lib/mcp/tools/remoteconfig/get_template.js +5 -5
  49. package/lib/mcp/tools/remoteconfig/index.js +4 -4
  50. package/lib/mcp/tools/remoteconfig/publish_template.js +7 -7
  51. package/lib/mcp/tools/remoteconfig/rollback_template.js +6 -6
  52. package/lib/mcp/tools/rules/get_rules.js +8 -8
  53. package/lib/mcp/tools/rules/validate_rules.js +10 -10
  54. package/lib/mcp/tools/storage/get_download_url.js +8 -8
  55. package/lib/mcp/tools/storage/get_rules.js +8 -8
  56. package/package.json +1 -1
  57. package/templates/init/dataconnect/mutations.gql +1 -1
  58. package/templates/init/dataconnect/queries.gql +3 -3
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.create_app = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const apps_js_1 = require("../../../management/apps.js");
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const apps_1 = require("../../../management/apps");
8
8
  const CREATE_APP_OUTUT_PREFIX = "Created app with the following details:\n\n";
9
9
  const CREATE_APP_OUTUT_SUFFIX = "\n\nTo fetch the SDK configuration for this app, use the firebase_get_sdk_config tool.";
10
- exports.create_app = (0, tool_js_1.tool)({
10
+ exports.create_app = (0, tool_1.tool)({
11
11
  name: "create_app",
12
12
  description: "Creates a new app in your Firebase project for Web, iOS, or Android.",
13
13
  inputSchema: zod_1.z.object({
@@ -55,7 +55,7 @@ exports.create_app = (0, tool_js_1.tool)({
55
55
  try {
56
56
  switch (platform) {
57
57
  case "android":
58
- return (0, util_js_1.toContent)(await (0, apps_js_1.createAndroidApp)(projectId, {
58
+ return (0, util_1.toContent)(await (0, apps_1.createAndroidApp)(projectId, {
59
59
  displayName: display_name,
60
60
  packageName: android_config.package_name,
61
61
  }), {
@@ -64,7 +64,7 @@ exports.create_app = (0, tool_js_1.tool)({
64
64
  contentSuffix: CREATE_APP_OUTUT_SUFFIX,
65
65
  });
66
66
  case "ios":
67
- return (0, util_js_1.toContent)(await (0, apps_js_1.createIosApp)(projectId, {
67
+ return (0, util_1.toContent)(await (0, apps_1.createIosApp)(projectId, {
68
68
  displayName: display_name,
69
69
  bundleId: ios_config.bundle_id,
70
70
  appStoreId: ios_config.app_store_id,
@@ -74,7 +74,7 @@ exports.create_app = (0, tool_js_1.tool)({
74
74
  contentSuffix: CREATE_APP_OUTUT_SUFFIX,
75
75
  });
76
76
  case "web":
77
- return (0, util_js_1.toContent)(await (0, apps_js_1.createWebApp)(projectId, {
77
+ return (0, util_1.toContent)(await (0, apps_1.createWebApp)(projectId, {
78
78
  displayName: display_name,
79
79
  }), {
80
80
  format: "yaml",
@@ -2,22 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.create_project = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const projects_js_1 = require("../../../management/projects.js");
8
- const error_js_1 = require("../../../error.js");
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const projects_1 = require("../../../management/projects");
8
+ const error_1 = require("../../../error");
9
9
  async function checkCloudProject(projectId) {
10
10
  try {
11
- return await (0, projects_js_1.getProject)(projectId);
11
+ return await (0, projects_1.getProject)(projectId);
12
12
  }
13
13
  catch (err) {
14
- if ((0, error_js_1.getErrStatus)(err) === 403) {
14
+ if ((0, error_1.getErrStatus)(err) === 403) {
15
15
  return undefined;
16
16
  }
17
17
  throw err;
18
18
  }
19
19
  }
20
- exports.create_project = (0, tool_js_1.tool)({
20
+ exports.create_project = (0, tool_1.tool)({
21
21
  name: "create_project",
22
22
  description: "Creates a new Firebase project.",
23
23
  inputSchema: zod_1.z.object({
@@ -40,23 +40,23 @@ exports.create_project = (0, tool_js_1.tool)({
40
40
  try {
41
41
  const cloudProject = await checkCloudProject(project_id);
42
42
  if (!cloudProject) {
43
- const newProject = await (0, projects_js_1.createFirebaseProjectAndLog)(project_id, {
43
+ const newProject = await (0, projects_1.createFirebaseProjectAndLog)(project_id, {
44
44
  displayName: display_name,
45
45
  });
46
- return (0, util_js_1.toContent)({
46
+ return (0, util_1.toContent)({
47
47
  message: `Successfully created new Firebase project: ${project_id}`,
48
48
  project: newProject,
49
49
  });
50
50
  }
51
- let firebaseProject = await (0, projects_js_1.checkFirebaseEnabledForCloudProject)(project_id);
51
+ let firebaseProject = await (0, projects_1.checkFirebaseEnabledForCloudProject)(project_id);
52
52
  if (firebaseProject) {
53
- return (0, util_js_1.toContent)({
53
+ return (0, util_1.toContent)({
54
54
  message: `Project ${project_id} already exists and has Firebase enabled.`,
55
55
  project: firebaseProject,
56
56
  });
57
57
  }
58
- firebaseProject = await (0, projects_js_1.addFirebaseToCloudProject)(project_id);
59
- return (0, util_js_1.toContent)({
58
+ firebaseProject = await (0, projects_1.addFirebaseToCloudProject)(project_id);
59
+ return (0, util_1.toContent)({
60
60
  message: `Successfully added Firebase to existing project: ${project_id}`,
61
61
  project: firebaseProject,
62
62
  });
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.get_admin_sdk_config = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const adminSdkConfig_js_1 = require("../../../emulator/adminSdkConfig.js");
8
- exports.get_admin_sdk_config = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const adminSdkConfig_1 = require("../../../emulator/adminSdkConfig");
8
+ exports.get_admin_sdk_config = (0, tool_1.tool)({
9
9
  name: "get_admin_sdk_config",
10
10
  description: "Gets the Admin SDK config for the current project. ",
11
11
  inputSchema: zod_1.z.object({}),
@@ -18,9 +18,9 @@ exports.get_admin_sdk_config = (0, tool_js_1.tool)({
18
18
  requiresProject: true,
19
19
  },
20
20
  }, async (_, { projectId }) => {
21
- const adminSdkConfig = await (0, adminSdkConfig_js_1.getProjectAdminSdkConfigOrCached)(projectId || "");
21
+ const adminSdkConfig = await (0, adminSdkConfig_1.getProjectAdminSdkConfigOrCached)(projectId || "");
22
22
  if (!adminSdkConfig) {
23
- return (0, util_js_1.mcpError)(`No Admin SDK configuration found in project '${projectId || ""}'`);
23
+ return (0, util_1.mcpError)(`No Admin SDK configuration found in project '${projectId || ""}'`);
24
24
  }
25
- return (0, util_js_1.toContent)(adminSdkConfig);
25
+ return (0, util_1.toContent)(adminSdkConfig);
26
26
  });
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.get_environment = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const projectUtils_js_1 = require("../../../projectUtils.js");
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const projectUtils_1 = require("../../../projectUtils");
8
8
  const js_yaml_1 = require("js-yaml");
9
- const auth_js_1 = require("../../../auth.js");
10
- exports.get_environment = (0, tool_js_1.tool)({
9
+ const auth_1 = require("../../../auth");
10
+ exports.get_environment = (0, tool_1.tool)({
11
11
  name: "get_environment",
12
12
  description: "Retrieves information about the current Firebase environment including current authenticated user, project directory, active project, and more.",
13
13
  inputSchema: zod_1.z.object({}),
@@ -20,8 +20,8 @@ exports.get_environment = (0, tool_js_1.tool)({
20
20
  requiresProject: false,
21
21
  },
22
22
  }, async (_, { projectId, host, accountEmail, rc, config }) => {
23
- const aliases = projectId ? (0, projectUtils_js_1.getAliases)({ rc }, projectId) : [];
24
- return (0, util_js_1.toContent)(`# Environment Information
23
+ const aliases = projectId ? (0, projectUtils_1.getAliases)({ rc }, projectId) : [];
24
+ return (0, util_1.toContent)(`# Environment Information
25
25
 
26
26
  Project Directory: ${host.cachedProjectRoot}
27
27
  Project Config Path: ${config.projectFileExists("firebase.json") ? config.path("firebase.json") : "<NO CONFIG PRESENT>"}
@@ -34,7 +34,7 @@ ${(0, js_yaml_1.dump)(rc.projects).trim()}
34
34
 
35
35
  # Available Accounts:
36
36
 
37
- ${(0, js_yaml_1.dump)((0, auth_js_1.getAllAccounts)().map((account) => account.user.email)).trim()}
37
+ ${(0, js_yaml_1.dump)((0, auth_1.getAllAccounts)().map((account) => account.user.email)).trim()}
38
38
  ${config.projectFileExists("firebase.json")
39
39
  ? `
40
40
  # firebase.json contents:
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.get_project = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const projects_js_1 = require("../../../management/projects.js");
7
- const util_js_1 = require("../../util.js");
8
- exports.get_project = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const projects_1 = require("../../../management/projects");
7
+ const util_1 = require("../../util");
8
+ exports.get_project = (0, tool_1.tool)({
9
9
  name: "get_project",
10
10
  description: "Retrieves information about the currently active Firebase project.",
11
11
  inputSchema: zod_1.z.object({}),
@@ -18,5 +18,5 @@ exports.get_project = (0, tool_js_1.tool)({
18
18
  requiresProject: true,
19
19
  },
20
20
  }, async (_, { projectId }) => {
21
- return (0, util_js_1.toContent)(await (0, projects_js_1.getProject)(projectId));
21
+ return (0, util_1.toContent)(await (0, projects_1.getProject)(projectId));
22
22
  });
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.get_sdk_config = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const apps_js_1 = require("../../../management/apps.js");
8
- exports.get_sdk_config = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const apps_1 = require("../../../management/apps");
8
+ exports.get_sdk_config = (0, tool_1.tool)({
9
9
  name: "get_sdk_config",
10
10
  description: "Retrieves the Firebase SDK configuration information for the specified platform. You must specify either a platform or an app_id.",
11
11
  inputSchema: zod_1.z.object({
@@ -30,12 +30,12 @@ exports.get_sdk_config = (0, tool_js_1.tool)({
30
30
  var _a, _b;
31
31
  let platform = inputPlatform === null || inputPlatform === void 0 ? void 0 : inputPlatform.toUpperCase();
32
32
  if (!platform && !appId)
33
- return (0, util_js_1.mcpError)("Must specify one of 'web', 'ios', or 'android' for platform or an app_id for get_sdk_config tool.");
34
- const apps = await (0, apps_js_1.listFirebaseApps)(projectId, platform !== null && platform !== void 0 ? platform : apps_js_1.AppPlatform.ANY);
33
+ return (0, util_1.mcpError)("Must specify one of 'web', 'ios', or 'android' for platform or an app_id for get_sdk_config tool.");
34
+ const apps = await (0, apps_1.listFirebaseApps)(projectId, platform !== null && platform !== void 0 ? platform : apps_1.AppPlatform.ANY);
35
35
  platform = platform || ((_a = apps.find((app) => app.appId === appId)) === null || _a === void 0 ? void 0 : _a.platform);
36
36
  appId = appId || ((_b = apps.find((app) => app.platform === platform)) === null || _b === void 0 ? void 0 : _b.appId);
37
37
  if (!appId)
38
- return (0, util_js_1.mcpError)(`Could not find an app for platform '${inputPlatform}' in project '${projectId}'`);
39
- const sdkConfig = await (0, apps_js_1.getAppConfig)(appId, platform);
40
- return (0, util_js_1.toContent)(sdkConfig, { format: "json" });
38
+ return (0, util_1.mcpError)(`Could not find an app for platform '${inputPlatform}' in project '${projectId}'`);
39
+ const sdkConfig = await (0, apps_1.getAppConfig)(appId, platform);
40
+ return (0, util_1.toContent)(sdkConfig, { format: "json" });
41
41
  });
@@ -1,29 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.coreTools = void 0;
4
- const get_project_js_1 = require("./get_project.js");
5
- const get_sdk_config_js_1 = require("./get_sdk_config.js");
6
- const list_apps_js_1 = require("./list_apps.js");
7
- const create_project_js_1 = require("./create_project.js");
8
- const create_app_js_1 = require("./create_app.js");
9
- const get_admin_sdk_config_js_1 = require("./get_admin_sdk_config.js");
10
- const create_android_sha_js_1 = require("./create_android_sha.js");
11
- const init_js_1 = require("./init.js");
12
- const get_environment_js_1 = require("./get_environment.js");
13
- const update_environment_js_1 = require("./update_environment.js");
14
- const list_projects_js_1 = require("./list_projects.js");
15
- const consult_assistant_js_1 = require("./consult_assistant.js");
4
+ const get_project_1 = require("./get_project");
5
+ const get_sdk_config_1 = require("./get_sdk_config");
6
+ const list_apps_1 = require("./list_apps");
7
+ const create_project_1 = require("./create_project");
8
+ const create_app_1 = require("./create_app");
9
+ const get_admin_sdk_config_1 = require("./get_admin_sdk_config");
10
+ const create_android_sha_1 = require("./create_android_sha");
11
+ const init_1 = require("./init");
12
+ const get_environment_1 = require("./get_environment");
13
+ const update_environment_1 = require("./update_environment");
14
+ const list_projects_1 = require("./list_projects");
15
+ const consult_assistant_1 = require("./consult_assistant");
16
16
  exports.coreTools = [
17
- get_project_js_1.get_project,
18
- list_apps_js_1.list_apps,
19
- get_admin_sdk_config_js_1.get_admin_sdk_config,
20
- list_projects_js_1.list_projects,
21
- get_sdk_config_js_1.get_sdk_config,
22
- create_project_js_1.create_project,
23
- create_app_js_1.create_app,
24
- create_android_sha_js_1.create_android_sha,
25
- consult_assistant_js_1.consult_assistant,
26
- get_environment_js_1.get_environment,
27
- update_environment_js_1.update_environment,
28
- init_js_1.init,
17
+ get_project_1.get_project,
18
+ list_apps_1.list_apps,
19
+ get_admin_sdk_config_1.get_admin_sdk_config,
20
+ list_projects_1.list_projects,
21
+ get_sdk_config_1.get_sdk_config,
22
+ create_project_1.create_project,
23
+ create_app_1.create_app,
24
+ create_android_sha_1.create_android_sha,
25
+ consult_assistant_1.consult_assistant,
26
+ get_environment_1.get_environment,
27
+ update_environment_1.update_environment,
28
+ init_1.init,
29
29
  ];
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const database_js_1 = require("../../../init/features/database.js");
8
- const index_js_1 = require("../../../init/index.js");
9
- exports.init = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const database_1 = require("../../../init/features/database");
8
+ const index_1 = require("../../../init/index");
9
+ exports.init = (0, tool_1.tool)({
10
10
  name: "init",
11
11
  description: "Initializes selected Firebase features in the workspace (Firestore, Data Connect, Realtime Database). All features are optional; provide only the products you wish to set up. " +
12
12
  "You can initialize new features into an existing project directory, but re-initializing an existing feature may overwrite configuration. " +
@@ -23,7 +23,7 @@ exports.init = (0, tool_js_1.tool)({
23
23
  rules: zod_1.z
24
24
  .string()
25
25
  .optional()
26
- .default(database_js_1.DEFAULT_RULES)
26
+ .default(database_1.DEFAULT_RULES)
27
27
  .describe("The security rules to use for Realtime Database Security Rules."),
28
28
  })
29
29
  .optional()
@@ -145,9 +145,9 @@ exports.init = (0, tool_js_1.tool)({
145
145
  features: [...featuresList],
146
146
  featureInfo: featureInfo,
147
147
  };
148
- await (0, index_js_1.actuate)(setup, config, { force: true });
148
+ await (0, index_1.actuate)(setup, config, { force: true });
149
149
  config.writeProjectFile("firebase.json", setup.config);
150
150
  config.writeProjectFile(".firebaserc", setup.rcfile);
151
- return (0, util_js_1.toContent)(`Successfully setup the project ${projectId} with those features: ${featuresList.join(", ")}` +
151
+ return (0, util_1.toContent)(`Successfully setup the project ${projectId} with those features: ${featuresList.join(", ")}` +
152
152
  " To deploy them, you can run `firebase deploy` in command line.");
153
153
  });
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.list_apps = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const apps_js_1 = require("../../../management/apps.js");
8
- exports.list_apps = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const apps_1 = require("../../../management/apps");
8
+ exports.list_apps = (0, tool_1.tool)({
9
9
  name: "list_apps",
10
10
  description: "Retrieves apps registered in the current Firebase project.",
11
11
  inputSchema: zod_1.z.object({
@@ -24,8 +24,8 @@ exports.list_apps = (0, tool_js_1.tool)({
24
24
  },
25
25
  }, async ({ platform }, { projectId }) => {
26
26
  try {
27
- const apps = await (0, apps_js_1.listFirebaseApps)(projectId, !platform || platform === "all" ? apps_js_1.AppPlatform.ANY : platform.toUpperCase());
28
- return (0, util_js_1.toContent)(apps);
27
+ const apps = await (0, apps_1.listFirebaseApps)(projectId, !platform || platform === "all" ? apps_1.AppPlatform.ANY : platform.toUpperCase());
28
+ return (0, util_1.toContent)(apps);
29
29
  }
30
30
  catch (err) {
31
31
  const originalMessage = err.original ? `: ${err.original.message}` : "";
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.list_projects = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const projects_js_1 = require("../../../management/projects.js");
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const projects_1 = require("../../../management/projects");
8
8
  const PROJECT_LIST_PAGE_SIZE = 20;
9
- exports.list_projects = (0, tool_js_1.tool)({
9
+ exports.list_projects = (0, tool_1.tool)({
10
10
  name: "list_projects",
11
11
  description: "Retrieves a list of Firebase projects up to the specified total count.",
12
12
  inputSchema: zod_1.z.object({
@@ -27,8 +27,8 @@ exports.list_projects = (0, tool_js_1.tool)({
27
27
  },
28
28
  }, async ({ page_size, page_token }) => {
29
29
  try {
30
- const projectPage = await (0, projects_js_1.getFirebaseProjectPage)(page_size, page_token);
31
- return (0, util_js_1.toContent)({
30
+ const projectPage = await (0, projects_1.getFirebaseProjectPage)(page_size, page_token);
31
+ return (0, util_1.toContent)({
32
32
  projects: projectPage.projects,
33
33
  next_page_token: projectPage.nextPageToken,
34
34
  }, {
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.update_environment = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const use_js_1 = require("../../../commands/use.js");
8
- const auth_js_1 = require("../../../auth.js");
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const use_1 = require("../../../commands/use");
8
+ const auth_1 = require("../../../auth");
9
9
  const node_fs_1 = require("node:fs");
10
- exports.update_environment = (0, tool_js_1.tool)({
10
+ exports.update_environment = (0, tool_1.tool)({
11
11
  name: "update_environment",
12
12
  description: "Updates Firebase environment config such as project directory, active project, active user account, and more. Use `firebase_get_environment` to see the currently configured environment.",
13
13
  inputSchema: zod_1.z.object({
@@ -36,20 +36,20 @@ exports.update_environment = (0, tool_js_1.tool)({
36
36
  let output = "";
37
37
  if (project_dir) {
38
38
  if (!(0, node_fs_1.existsSync)(project_dir))
39
- return (0, util_js_1.mcpError)(`Cannot update project directory to '${project_dir}' as it does not exist.`);
39
+ return (0, util_1.mcpError)(`Cannot update project directory to '${project_dir}' as it does not exist.`);
40
40
  host.setProjectRoot(project_dir);
41
41
  output += `- Updated project directory to '${project_dir}'\n`;
42
42
  }
43
43
  if (active_project) {
44
- await (0, use_js_1.setNewActive)(active_project, undefined, rc, config.projectDir);
44
+ await (0, use_1.setNewActive)(active_project, undefined, rc, config.projectDir);
45
45
  output += `- Updated active project to '${active_project}'\n`;
46
46
  }
47
47
  if (active_user_account) {
48
- (0, auth_js_1.assertAccount)(active_user_account, { mcp: true });
49
- (0, auth_js_1.setProjectAccount)(host.cachedProjectRoot, active_user_account);
48
+ (0, auth_1.assertAccount)(active_user_account, { mcp: true });
49
+ (0, auth_1.setProjectAccount)(host.cachedProjectRoot, active_user_account);
50
50
  output += `- Updated active account to '${active_user_account}'\n`;
51
51
  }
52
52
  if (output === "")
53
53
  output = "No changes were made.";
54
- return (0, util_js_1.toContent)(output);
54
+ return (0, util_1.toContent)(output);
55
55
  });
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.crashlyticsTools = void 0;
4
- const list_top_issues_js_1 = require("./list_top_issues.js");
5
- exports.crashlyticsTools = [list_top_issues_js_1.list_top_issues];
4
+ const list_top_issues_1 = require("./list_top_issues");
5
+ exports.crashlyticsTools = [list_top_issues_1.list_top_issues];
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.list_top_issues = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const listTopIssues_js_1 = require("../../../crashlytics/listTopIssues.js");
8
- exports.list_top_issues = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const listTopIssues_1 = require("../../../crashlytics/listTopIssues");
8
+ exports.list_top_issues = (0, tool_1.tool)({
9
9
  name: "list_top_issues",
10
10
  description: "List the top crashes from crashlytics happening in the application.",
11
11
  inputSchema: zod_1.z.object({
@@ -32,8 +32,8 @@ exports.list_top_issues = (0, tool_js_1.tool)({
32
32
  },
33
33
  }, async ({ app_id, issue_type, issue_count }, { projectId }) => {
34
34
  if (!app_id)
35
- return (0, util_js_1.mcpError)(`Must specify 'app_id' parameter.`);
35
+ return (0, util_1.mcpError)(`Must specify 'app_id' parameter.`);
36
36
  issue_type !== null && issue_type !== void 0 ? issue_type : (issue_type = "FATAL");
37
37
  issue_count !== null && issue_count !== void 0 ? issue_count : (issue_count = 10);
38
- return (0, util_js_1.toContent)(await (0, listTopIssues_js_1.listTopIssues)(projectId, app_id, issue_type, issue_count));
38
+ return (0, util_1.toContent)(await (0, listTopIssues_1.listTopIssues)(projectId, app_id, issue_type, issue_count));
39
39
  });
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDataConnectEmulatorClient = void 0;
4
- const types_js_1 = require("../../../emulator/types.js");
5
- const apiv2_js_1 = require("../../../apiv2.js");
6
- const dataplaneClient_js_1 = require("../../../dataconnect/dataplaneClient.js");
4
+ const types_1 = require("../../../emulator/types");
5
+ const apiv2_1 = require("../../../apiv2");
6
+ const dataplaneClient_1 = require("../../../dataconnect/dataplaneClient");
7
7
  async function getDataConnectEmulatorClient(host) {
8
- const emulatorUrl = await host.getEmulatorUrl(types_js_1.Emulators.DATACONNECT);
9
- const apiClient = new apiv2_js_1.Client({
8
+ const emulatorUrl = await host.getEmulatorUrl(types_1.Emulators.DATACONNECT);
9
+ const apiClient = new apiv2_1.Client({
10
10
  urlPrefix: emulatorUrl,
11
- apiVersion: dataplaneClient_js_1.DATACONNECT_API_VERSION,
11
+ apiVersion: dataplaneClient_1.DATACONNECT_API_VERSION,
12
12
  auth: false,
13
13
  });
14
14
  return apiClient;
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.execute_graphql = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const dataplane = require("../../../dataconnect/dataplaneClient.js");
7
- const fileUtils_js_1 = require("../../../dataconnect/fileUtils.js");
8
- const converter_js_1 = require("./converter.js");
9
- const emulator_js_1 = require("./emulator.js");
10
- exports.execute_graphql = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const dataplane = require("../../../dataconnect/dataplaneClient");
7
+ const fileUtils_1 = require("../../../dataconnect/fileUtils");
8
+ const converter_1 = require("./converter");
9
+ const emulator_1 = require("./emulator");
10
+ exports.execute_graphql = (0, tool_1.tool)({
11
11
  name: "execute_graphql",
12
12
  description: "Executes an arbitrary GraphQL against a Data Connect service or its emulator.",
13
13
  inputSchema: zod_1.z.object({
@@ -31,10 +31,10 @@ exports.execute_graphql = (0, tool_js_1.tool)({
31
31
  requiresAuth: true,
32
32
  },
33
33
  }, async ({ query, service_id, variables: unparsedVariables, use_emulator }, { projectId, config, host }) => {
34
- const serviceInfo = await (0, fileUtils_js_1.pickService)(projectId, config, service_id || undefined);
34
+ const serviceInfo = await (0, fileUtils_1.pickService)(projectId, config, service_id || undefined);
35
35
  let apiClient;
36
36
  if (use_emulator) {
37
- apiClient = await (0, emulator_js_1.getDataConnectEmulatorClient)(host);
37
+ apiClient = await (0, emulator_1.getDataConnectEmulatorClient)(host);
38
38
  }
39
39
  else {
40
40
  apiClient = dataplane.dataconnectDataplaneClient();
@@ -42,7 +42,7 @@ exports.execute_graphql = (0, tool_js_1.tool)({
42
42
  const response = await dataplane.executeGraphQL(apiClient, serviceInfo.serviceName, {
43
43
  name: "",
44
44
  query,
45
- variables: (0, converter_js_1.parseVariables)(unparsedVariables),
45
+ variables: (0, converter_1.parseVariables)(unparsedVariables),
46
46
  });
47
- return (0, converter_js_1.graphqlResponseToToolResponse)(response.body);
47
+ return (0, converter_1.graphqlResponseToToolResponse)(response.body);
48
48
  });
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.execute_graphql_read = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const dataplane = require("../../../dataconnect/dataplaneClient.js");
7
- const fileUtils_js_1 = require("../../../dataconnect/fileUtils.js");
8
- const converter_js_1 = require("./converter.js");
9
- const emulator_js_1 = require("./emulator.js");
10
- exports.execute_graphql_read = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const dataplane = require("../../../dataconnect/dataplaneClient");
7
+ const fileUtils_1 = require("../../../dataconnect/fileUtils");
8
+ const converter_1 = require("./converter");
9
+ const emulator_1 = require("./emulator");
10
+ exports.execute_graphql_read = (0, tool_1.tool)({
11
11
  name: "execute_graphql_read",
12
12
  description: "Executes an arbitrary GraphQL query against a Data Connect service or its emulator. Cannot write data.",
13
13
  inputSchema: zod_1.z.object({
@@ -31,10 +31,10 @@ exports.execute_graphql_read = (0, tool_js_1.tool)({
31
31
  requiresAuth: true,
32
32
  },
33
33
  }, async ({ query, service_id, variables: unparsedVariables, use_emulator }, { projectId, config, host }) => {
34
- const serviceInfo = await (0, fileUtils_js_1.pickService)(projectId, config, service_id || undefined);
34
+ const serviceInfo = await (0, fileUtils_1.pickService)(projectId, config, service_id || undefined);
35
35
  let apiClient;
36
36
  if (use_emulator) {
37
- apiClient = await (0, emulator_js_1.getDataConnectEmulatorClient)(host);
37
+ apiClient = await (0, emulator_1.getDataConnectEmulatorClient)(host);
38
38
  }
39
39
  else {
40
40
  apiClient = dataplane.dataconnectDataplaneClient();
@@ -42,7 +42,7 @@ exports.execute_graphql_read = (0, tool_js_1.tool)({
42
42
  const response = await dataplane.executeGraphQLRead(apiClient, serviceInfo.serviceName, {
43
43
  name: "",
44
44
  query,
45
- variables: (0, converter_js_1.parseVariables)(unparsedVariables),
45
+ variables: (0, converter_1.parseVariables)(unparsedVariables),
46
46
  });
47
- return (0, converter_js_1.graphqlResponseToToolResponse)(response.body);
47
+ return (0, converter_1.graphqlResponseToToolResponse)(response.body);
48
48
  });
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.execute_mutation = void 0;
4
4
  const zod_1 = require("zod");
5
- const tool_js_1 = require("../../tool.js");
6
- const util_js_1 = require("../../util.js");
7
- const dataplane = require("../../../dataconnect/dataplaneClient.js");
8
- const fileUtils_js_1 = require("../../../dataconnect/fileUtils.js");
9
- const converter_js_1 = require("./converter.js");
10
- const emulator_js_1 = require("./emulator.js");
11
- exports.execute_mutation = (0, tool_js_1.tool)({
5
+ const tool_1 = require("../../tool");
6
+ const util_1 = require("../../util");
7
+ const dataplane = require("../../../dataconnect/dataplaneClient");
8
+ const fileUtils_1 = require("../../../dataconnect/fileUtils");
9
+ const converter_1 = require("./converter");
10
+ const emulator_1 = require("./emulator");
11
+ exports.execute_mutation = (0, tool_1.tool)({
12
12
  name: "execute_mutation",
13
13
  description: "Executes a deployed Data Connect mutation against a service or its emulator. Can read and write data.",
14
14
  inputSchema: zod_1.z.object({
@@ -36,27 +36,27 @@ exports.execute_mutation = (0, tool_js_1.tool)({
36
36
  requiresAuth: true,
37
37
  },
38
38
  }, async ({ operationName, service_id, connector_id, variables: unparsedVariables, use_emulator }, { projectId, config, host }) => {
39
- const serviceInfo = await (0, fileUtils_js_1.pickService)(projectId, config, service_id || undefined);
39
+ const serviceInfo = await (0, fileUtils_1.pickService)(projectId, config, service_id || undefined);
40
40
  let apiClient;
41
41
  if (!connector_id) {
42
42
  if (serviceInfo.connectorInfo.length === 0) {
43
- return (0, util_js_1.mcpError)(`Service ${serviceInfo.serviceName} has no connectors`, "NO_CONNECTORS_FOUND");
43
+ return (0, util_1.mcpError)(`Service ${serviceInfo.serviceName} has no connectors`, "NO_CONNECTORS_FOUND");
44
44
  }
45
45
  if (serviceInfo.connectorInfo.length > 1) {
46
- return (0, util_js_1.mcpError)(`Service ${serviceInfo.serviceName} has more than one connector. Please use the connector_id argument to specify which connector this operation is part of.`, "MULTIPLE_CONNECTORS_FOUND");
46
+ return (0, util_1.mcpError)(`Service ${serviceInfo.serviceName} has more than one connector. Please use the connector_id argument to specify which connector this operation is part of.`, "MULTIPLE_CONNECTORS_FOUND");
47
47
  }
48
48
  connector_id = serviceInfo.connectorInfo[0].connectorYaml.connectorId;
49
49
  }
50
50
  const connectorPath = `${serviceInfo.serviceName}/connectors/${connector_id}`;
51
51
  if (use_emulator) {
52
- apiClient = await (0, emulator_js_1.getDataConnectEmulatorClient)(host);
52
+ apiClient = await (0, emulator_1.getDataConnectEmulatorClient)(host);
53
53
  }
54
54
  else {
55
55
  apiClient = dataplane.dataconnectDataplaneClient();
56
56
  }
57
57
  const response = await dataplane.executeGraphQLMutation(apiClient, connectorPath, {
58
58
  operationName,
59
- variables: (0, converter_js_1.parseVariables)(unparsedVariables),
59
+ variables: (0, converter_1.parseVariables)(unparsedVariables),
60
60
  });
61
- return (0, converter_js_1.graphqlResponseToToolResponse)(response.body);
61
+ return (0, converter_1.graphqlResponseToToolResponse)(response.body);
62
62
  });