firebase-tools 11.4.0 → 11.5.0

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 (188) hide show
  1. package/README.md +8 -15
  2. package/lib/accountImporter.js +1 -1
  3. package/lib/auth.js +3 -4
  4. package/lib/bin/firebase.js +4 -4
  5. package/lib/command.js +3 -3
  6. package/lib/commands/apps-android-sha-create.js +1 -1
  7. package/lib/commands/apps-android-sha-delete.js +1 -1
  8. package/lib/commands/apps-create.js +1 -1
  9. package/lib/commands/apps-list.js +1 -1
  10. package/lib/commands/auth-export.js +1 -1
  11. package/lib/commands/auth-import.js +1 -1
  12. package/lib/commands/database-instances-list.js +1 -1
  13. package/lib/commands/database-push.js +1 -1
  14. package/lib/commands/database-remove.js +1 -1
  15. package/lib/commands/database-set.js +1 -1
  16. package/lib/commands/database-update.js +1 -1
  17. package/lib/commands/emulators-start.js +1 -1
  18. package/lib/commands/ext-dev-deprecate.js +1 -1
  19. package/lib/commands/ext-dev-emulators-exec.js +1 -1
  20. package/lib/commands/ext-dev-emulators-start.js +1 -1
  21. package/lib/commands/ext-dev-extension-delete.js +1 -1
  22. package/lib/commands/ext-dev-list.js +1 -1
  23. package/lib/commands/ext-dev-publish.js +1 -1
  24. package/lib/commands/ext-dev-register.js +1 -1
  25. package/lib/commands/ext-dev-undeprecate.js +1 -1
  26. package/lib/commands/ext-dev-unpublish.js +1 -1
  27. package/lib/commands/ext-dev-usage.js +1 -1
  28. package/lib/commands/ext-info.js +1 -1
  29. package/lib/commands/ext-install.js +2 -2
  30. package/lib/commands/ext-update.js +1 -1
  31. package/lib/commands/ext.js +1 -1
  32. package/lib/commands/firestore-delete.js +2 -2
  33. package/lib/commands/firestore-indexes-list.js +3 -3
  34. package/lib/commands/functions-config-clone.js +1 -1
  35. package/lib/commands/functions-config-export.js +1 -1
  36. package/lib/commands/functions-config-set.js +1 -1
  37. package/lib/commands/functions-config-unset.js +1 -1
  38. package/lib/commands/functions-delete.js +1 -1
  39. package/lib/commands/functions-secrets-set.js +1 -1
  40. package/lib/commands/help.js +1 -1
  41. package/lib/commands/hosting-channel-create.js +5 -5
  42. package/lib/commands/hosting-channel-delete.js +3 -3
  43. package/lib/commands/hosting-channel-deploy.js +6 -6
  44. package/lib/commands/hosting-channel-list.js +2 -2
  45. package/lib/commands/hosting-channel-open.js +2 -2
  46. package/lib/commands/hosting-clone.js +13 -8
  47. package/lib/commands/hosting-disable.js +1 -1
  48. package/lib/commands/hosting-sites-create.js +4 -4
  49. package/lib/commands/hosting-sites-delete.js +4 -4
  50. package/lib/commands/hosting-sites-list.js +2 -2
  51. package/lib/commands/init.js +5 -5
  52. package/lib/commands/login-add.js +1 -1
  53. package/lib/commands/login-ci.js +4 -2
  54. package/lib/commands/login-list.js +1 -1
  55. package/lib/commands/login-use.js +1 -1
  56. package/lib/commands/login.js +1 -1
  57. package/lib/commands/logout.js +1 -1
  58. package/lib/commands/open.js +3 -3
  59. package/lib/commands/projects-list.js +2 -2
  60. package/lib/commands/serve.js +1 -1
  61. package/lib/commands/target-apply.js +1 -1
  62. package/lib/commands/target-clear.js +1 -1
  63. package/lib/commands/target-remove.js +1 -1
  64. package/lib/commands/target.js +1 -1
  65. package/lib/commands/use.js +7 -7
  66. package/lib/config.js +1 -1
  67. package/lib/deploy/database/prepare.js +3 -3
  68. package/lib/deploy/database/release.js +3 -3
  69. package/lib/deploy/extensions/deploymentSummary.js +1 -1
  70. package/lib/deploy/extensions/errors.js +1 -1
  71. package/lib/deploy/extensions/secrets.js +1 -1
  72. package/lib/deploy/extensions/tasks.js +2 -2
  73. package/lib/deploy/firestore/deploy.js +2 -2
  74. package/lib/deploy/firestore/prepare.js +2 -2
  75. package/lib/deploy/functions/backend.js +7 -5
  76. package/lib/deploy/functions/build.js +110 -95
  77. package/lib/deploy/functions/checkIam.js +3 -3
  78. package/lib/deploy/functions/containerCleaner.js +2 -2
  79. package/lib/deploy/functions/deploy.js +2 -2
  80. package/lib/deploy/functions/ensure.js +2 -2
  81. package/lib/deploy/functions/params.js +5 -2
  82. package/lib/deploy/functions/prepare.js +4 -4
  83. package/lib/deploy/functions/prepareFunctionsUpload.js +2 -2
  84. package/lib/deploy/functions/pricing.js +3 -2
  85. package/lib/deploy/functions/prompts.js +2 -2
  86. package/lib/deploy/functions/release/fabricator.js +10 -9
  87. package/lib/deploy/functions/release/index.js +1 -1
  88. package/lib/deploy/functions/release/reporter.js +1 -1
  89. package/lib/deploy/functions/runtimes/discovery/parsing.js +19 -8
  90. package/lib/deploy/functions/runtimes/discovery/v1alpha1.js +112 -107
  91. package/lib/deploy/functions/runtimes/node/parseRuntimeAndValidateSDK.js +1 -1
  92. package/lib/deploy/functions/runtimes/node/parseTriggers.js +54 -26
  93. package/lib/deploy/functions/runtimes/node/versioning.js +4 -4
  94. package/lib/deploy/functions/services/storage.js +6 -0
  95. package/lib/deploy/functions/validate.js +1 -1
  96. package/lib/deploy/hosting/convertConfig.js +13 -2
  97. package/lib/deploy/hosting/deploy.js +11 -10
  98. package/lib/deploy/hosting/uploader.js +2 -2
  99. package/lib/deploy/hosting/validate.js +2 -2
  100. package/lib/deploy/index.js +7 -7
  101. package/lib/deploy/lifecycleHooks.js +5 -2
  102. package/lib/deploy/storage/prepare.js +5 -3
  103. package/lib/deploy/storage/release.js +7 -6
  104. package/lib/emulator/commandUtils.js +1 -1
  105. package/lib/emulator/controller.js +1 -1
  106. package/lib/emulator/databaseEmulator.js +1 -1
  107. package/lib/emulator/downloadableEmulators.js +1 -1
  108. package/lib/emulator/emulatorLogger.js +1 -1
  109. package/lib/emulator/extensionsEmulator.js +2 -2
  110. package/lib/emulator/firestoreEmulator.js +1 -1
  111. package/lib/emulator/functionsEmulator.js +22 -10
  112. package/lib/emulator/functionsEmulatorShared.js +6 -11
  113. package/lib/emulator/loggingEmulator.js +2 -2
  114. package/lib/emulator/storage/apis/firebase.js +13 -1
  115. package/lib/emulator/storage/apis/gcloud.js +15 -8
  116. package/lib/emulator/storage/files.js +26 -24
  117. package/lib/emulator/storage/metadata.js +6 -6
  118. package/lib/emulator/storage/multipart.js +4 -3
  119. package/lib/emulator/storage/persistence.js +26 -12
  120. package/lib/emulator/storage/rules/runtime.js +1 -1
  121. package/lib/emulator/storage/rules/utils.js +4 -2
  122. package/lib/emulator/types.js +1 -0
  123. package/lib/ensureApiEnabled.js +7 -7
  124. package/lib/extensions/askUserForConsent.js +1 -1
  125. package/lib/extensions/askUserForEventsConfig.js +1 -1
  126. package/lib/extensions/askUserForParam.js +1 -1
  127. package/lib/extensions/changelog.js +2 -2
  128. package/lib/extensions/checkProjectBilling.js +2 -2
  129. package/lib/extensions/displayExtensionInfo.js +2 -102
  130. package/lib/extensions/emulator/triggerHelper.js +2 -2
  131. package/lib/extensions/extensionsApi.js +1 -1
  132. package/lib/extensions/extensionsHelper.js +1 -1
  133. package/lib/extensions/listExtensions.js +1 -1
  134. package/lib/extensions/manifest.js +1 -1
  135. package/lib/extensions/metricsUtils.js +1 -1
  136. package/lib/extensions/paramHelper.js +1 -1
  137. package/lib/extensions/updateHelper.js +3 -9
  138. package/lib/extensions/warnings.js +2 -2
  139. package/lib/fetchMOTD.js +1 -1
  140. package/lib/firestore/delete.js +1 -1
  141. package/lib/firestore/indexes.js +2 -2
  142. package/lib/firestore/validator.js +1 -1
  143. package/lib/functional.js +16 -1
  144. package/lib/functions/env.js +3 -3
  145. package/lib/functions/runtimeConfigExport.js +1 -1
  146. package/lib/functionsConfig.js +1 -1
  147. package/lib/functionsConfigClone.js +1 -1
  148. package/lib/functionsShellCommandAction.js +1 -1
  149. package/lib/gcp/cloudfunctions.js +24 -11
  150. package/lib/gcp/cloudfunctionsv2.js +48 -24
  151. package/lib/gcp/cloudscheduler.js +58 -22
  152. package/lib/gcp/cloudtasks.js +21 -4
  153. package/lib/gcp/proto.js +18 -6
  154. package/lib/gcp/resourceManager.js +25 -3
  155. package/lib/gcp/serviceusage.js +2 -2
  156. package/lib/handlePreviewToggles.js +4 -4
  157. package/lib/hosting/implicitInit.js +1 -1
  158. package/lib/hosting/normalizedHostingConfigs.js +3 -3
  159. package/lib/index.js +3 -3
  160. package/lib/init/features/database.js +1 -1
  161. package/lib/init/features/emulators.js +1 -1
  162. package/lib/init/features/firestore/index.js +2 -2
  163. package/lib/init/features/firestore/indexes.js +1 -1
  164. package/lib/init/features/firestore/rules.js +1 -1
  165. package/lib/init/features/functions/golang.js +1 -1
  166. package/lib/init/features/functions/index.js +8 -1
  167. package/lib/init/features/hosting/github.js +9 -9
  168. package/lib/init/features/hosting/index.js +1 -1
  169. package/lib/init/features/project.js +1 -1
  170. package/lib/init/features/remoteconfig.js +1 -1
  171. package/lib/init/features/storage.js +1 -1
  172. package/lib/init/index.js +1 -1
  173. package/lib/logError.js +3 -3
  174. package/lib/management/projects.js +1 -1
  175. package/lib/parseBoltRules.js +1 -1
  176. package/lib/previews.js +1 -1
  177. package/lib/profileReport.js +2 -2
  178. package/lib/projectUtils.js +1 -1
  179. package/lib/rc.js +1 -1
  180. package/lib/requireAuth.js +5 -1
  181. package/lib/requireDatabaseInstance.js +2 -2
  182. package/lib/requirePermissions.js +2 -2
  183. package/lib/rulesDeploy.js +49 -13
  184. package/lib/serve/hosting.js +2 -1
  185. package/lib/utils.js +10 -10
  186. package/npm-shrinkwrap.json +26 -295
  187. package/package.json +8 -5
  188. package/templates/hosting/init.js +6 -2
package/README.md CHANGED
@@ -174,11 +174,11 @@ Use `firebase:deploy --only remoteconfig` to update and publish a project's Fire
174
174
 
175
175
  The Firebase CLI can use one of four authentication methods listed in descending priority:
176
176
 
177
- - **User Token** - provide an explicit long-lived Firebase user token generated from `firebase login:ci`. Note that these tokens are extremely sensitive long-lived credentials and are not the right option for most cases. Consider using service account authorization instead. The token can be set in one of two ways:
177
+ - **User Token** - **DEPRECATED: this authentication method will be removed in a future major version of `firebase-tools`; use a service account to authenticate instead** - provide an explicit long-lived Firebase user token generated from `firebase login:ci`. Note that these tokens are extremely sensitive long-lived credentials and are not the right option for most cases. Consider using service account authorization instead. The token can be set in one of two ways:
178
178
  - Set the `--token` flag on any command, for example `firebase --token="<token>" projects:list`.
179
179
  - Set the `FIREBASE_TOKEN` environment variable.
180
180
  - **Local Login** - run `firebase login` to log in to the CLI directly as yourself. The CLI will cache an authorized user credential on your machine.
181
- - **Service Account** - set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to point to the path of a JSON service account key file.
181
+ - **Service Account** - set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to point to the path of a JSON service account key file. For more details, see Google Cloud's [Getting started with authentication](https://cloud.google.com/docs/authentication/getting-started) guide.
182
182
  - **Application Default Credentials** - if you use the `gcloud` CLI and log in with `gcloud auth application-default login`, the Firebase CLI will use them if none of the above credentials are present.
183
183
 
184
184
  ### Multiple Accounts
@@ -224,21 +224,14 @@ or `HTTP_PROXY` value in your environment to the URL of your proxy (e.g.
224
224
  The Firebase CLI requires a browser to complete authentication, but is fully
225
225
  compatible with CI and other headless environments.
226
226
 
227
- 1. On a machine with a browser, install the Firebase CLI.
228
- 2. Run `firebase login:ci` to log in and print out a new [refresh token](https://developers.google.com/identity/protocols/OAuth2)
229
- (the current CLI session will not be affected).
230
- 3. Store the output token in a secure but accessible way in your CI system.
227
+ Complete the following steps to run Firebase commands in a CI environment. Find detailed instructions for each step in Google Cloud's [Getting started with authentication](https://cloud.google.com/docs/authentication/getting-started) guide.
231
228
 
232
- There are two ways to use this token when running Firebase commands:
229
+ 1. Create a service account and grant it the appropriate level of access to your project.
230
+ 1. Create a service account key (JSON file) for that service account.
231
+ 1. Store the key file in a secure, accessible way in your CI system.
232
+ 1. Set `GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json` in your CI system when running Firebase commands.
233
233
 
234
- 1. Store the token as the environment variable `FIREBASE_TOKEN` and it will
235
- automatically be utilized.
236
- 2. Run all commands with the `--token <token>` flag in your CI system.
237
-
238
- The order of precedence for token loading is flag, environment variable, active project.
239
-
240
- On any machine with the Firebase CLI, running `firebase logout --token <token>`
241
- will immediately revoke access for the specified token.
234
+ To disable access for the service account, [find the service account](https://console.cloud.google.com/projectselector/iam-admin/serviceaccounts) for your project in the Google Cloud Console, and then either remove the key, or disable or delete the service account.
242
235
 
243
236
  ## Using as a Module
244
237
 
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.serialImportUsers = exports.validateUserJson = exports.validateOptions = exports.transArrayToUser = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const apiv2_1 = require("./apiv2");
6
6
  const api_1 = require("./api");
7
7
  const logger_1 = require("./logger");
package/lib/auth.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logout = exports.getAccessToken = exports.findAccountByEmail = exports.loginGithub = exports.loginGoogle = exports.setGlobalDefaultAccount = exports.setProjectAccount = exports.loginAdditionalAccount = exports.selectAccount = exports.setRefreshToken = exports.setActiveAccount = exports.getAllAccounts = exports.getAdditionalAccounts = exports.getProjectDefaultAccount = exports.getGlobalDefaultAccount = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const FormData = require("form-data");
6
6
  const fs = require("fs");
7
7
  const http = require("http");
@@ -21,7 +21,6 @@ const scopes = require("./scopes");
21
21
  const defaultCredentials_1 = require("./defaultCredentials");
22
22
  const uuid_1 = require("uuid");
23
23
  const crypto_1 = require("crypto");
24
- const cli_color_1 = require("cli-color");
25
24
  const track_1 = require("./track");
26
25
  const api_1 = require("./api");
27
26
  portfinder.basePort = 9005;
@@ -294,7 +293,7 @@ async function loginRemotely() {
294
293
  logger_1.logger.info();
295
294
  logger_1.logger.info("1. Take note of your session ID:");
296
295
  logger_1.logger.info();
297
- logger_1.logger.info(` ${(0, cli_color_1.bold)(sessionId.substring(0, 5).toUpperCase())}`);
296
+ logger_1.logger.info(` ${clc.bold(sessionId.substring(0, 5).toUpperCase())}`);
298
297
  logger_1.logger.info();
299
298
  logger_1.logger.info("2. Visit the URL below on any device and follow the instructions to get your code:");
300
299
  logger_1.logger.info();
@@ -366,7 +365,7 @@ async function loginWithLocalhost(port, callbackUrl, authUrl, successTemplate, g
366
365
  server.listen(port, () => {
367
366
  logger_1.logger.info();
368
367
  logger_1.logger.info("Visit this URL on this device to log in:");
369
- logger_1.logger.info(clc.bold.underline(authUrl));
368
+ logger_1.logger.info(clc.bold(clc.underline(authUrl)));
370
369
  logger_1.logger.info();
371
370
  logger_1.logger.info("Waiting for authentication...");
372
371
  open(authUrl);
@@ -9,20 +9,20 @@ if (!semver.satisfies(nodeVersion, pkg.engines.node)) {
9
9
  process.exit(1);
10
10
  }
11
11
  const updateNotifierPkg = require("update-notifier");
12
- const clc = require("cli-color");
12
+ const clc = require("colorette");
13
13
  const TerminalRenderer = require("marked-terminal");
14
14
  const updateNotifier = updateNotifierPkg({ pkg: pkg });
15
15
  const marked_1 = require("marked");
16
16
  marked_1.marked.setOptions({
17
17
  renderer: new TerminalRenderer(),
18
18
  });
19
- const updateMessage = `Update available ${clc.xterm(240)("{currentVersion}")} → ${clc.green("{latestVersion}")}\n` +
19
+ const updateMessage = `Update available ${clc.gray("{currentVersion}")} → ${clc.green("{latestVersion}")}\n` +
20
20
  `To update to the latest version using npm, run\n${clc.cyan("npm install -g firebase-tools")}\n` +
21
21
  `For other CLI management options, visit the ${(0, marked_1.marked)("[CLI documentation](https://firebase.google.com/docs/cli#update-cli)")}`;
22
22
  updateNotifier.notify({ defer: true, isGlobal: true, message: updateMessage });
23
23
  const node_path_1 = require("node:path");
24
24
  const triple_beam_1 = require("triple-beam");
25
- const cli_color_1 = require("cli-color");
25
+ const stripAnsi = require("strip-ansi");
26
26
  const fs = require("node:fs");
27
27
  const configstore_1 = require("../configstore");
28
28
  const errorOut_1 = require("../errorOut");
@@ -64,7 +64,7 @@ logger_1.logger.add(new winston.transports.File({
64
64
  filename: logFilename,
65
65
  format: winston.format.printf((info) => {
66
66
  const segments = [info.message, ...(info[triple_beam_1.SPLAT] || [])].map(utils.tryStringify);
67
- return `[${info.level}] ${(0, cli_color_1.strip)(segments.join(" "))}`;
67
+ return `[${info.level}] ${stripAnsi(segments.join(" "))}`;
68
68
  }),
69
69
  }));
70
70
  logger_1.logger.debug("-".repeat(70));
package/lib/command.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateProjectId = exports.Command = void 0;
4
- const cli_color_1 = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const lodash_1 = require("lodash");
6
6
  const error_1 = require("./error");
7
7
  const utils_1 = require("./utils");
@@ -10,7 +10,6 @@ const config_1 = require("./config");
10
10
  const configstore_1 = require("./configstore");
11
11
  const detectProjectRoot_1 = require("./detectProjectRoot");
12
12
  const track_1 = require("./track");
13
- const clc = require("cli-color");
14
13
  const auth_1 = require("./auth");
15
14
  const projects_1 = require("./management/projects");
16
15
  const requireAuth_1 = require("./requireAuth");
@@ -64,6 +63,7 @@ class Command {
64
63
  });
65
64
  if (this.helpText) {
66
65
  cmd.on("--help", () => {
66
+ console.log();
67
67
  console.log(this.helpText);
68
68
  });
69
69
  }
@@ -73,7 +73,7 @@ class Command {
73
73
  const start = new Date().getTime();
74
74
  const options = (0, lodash_1.last)(args);
75
75
  if (args.length - 1 > cmd._args.length) {
76
- client.errorOut(new error_1.FirebaseError(`Too many arguments. Run ${(0, cli_color_1.bold)("firebase help " + this.name)} for usage instructions`, { exit: 1 }));
76
+ client.errorOut(new error_1.FirebaseError(`Too many arguments. Run ${clc.bold("firebase help " + this.name)} for usage instructions`, { exit: 1 }));
77
77
  return;
78
78
  }
79
79
  runner(...args)
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const command_1 = require("../command");
6
6
  const projectUtils_1 = require("../projectUtils");
7
7
  const apps_1 = require("../management/apps");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const command_1 = require("../command");
6
6
  const projectUtils_1 = require("../projectUtils");
7
7
  const apps_1 = require("../management/apps");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const ora = require("ora");
6
6
  const command_1 = require("../command");
7
7
  const projectUtils_1 = require("../projectUtils");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const ora = require("ora");
6
6
  const Table = require("cli-table");
7
7
  const command_1 = require("../command");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const fs = require("fs");
6
6
  const os = require("os");
7
7
  const command_1 = require("../command");
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
4
  const csv_parse_1 = require("csv-parse");
5
5
  const Chain = require("stream-chain");
6
- const clc = require("cli-color");
6
+ const clc = require("colorette");
7
7
  const fs = require("fs-extra");
8
8
  const Pick = require("stream-json/filters/Pick");
9
9
  const StreamArray = require("stream-json/streamers/StreamArray");
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
4
  const command_1 = require("../command");
5
5
  const Table = require("cli-table");
6
- const clc = require("cli-color");
6
+ const clc = require("colorette");
7
7
  const ora = require("ora");
8
8
  const logger_1 = require("../logger");
9
9
  const requirePermissions_1 = require("../requirePermissions");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const fs = require("fs");
6
6
  const apiv2_1 = require("../apiv2");
7
7
  const command_1 = require("../command");
@@ -11,7 +11,7 @@ const database_1 = require("../management/database");
11
11
  const api_1 = require("../database/api");
12
12
  const utils = require("../utils");
13
13
  const prompt_1 = require("../prompt");
14
- const clc = require("cli-color");
14
+ const clc = require("colorette");
15
15
  exports.command = new command_1.Command("database:remove <path>")
16
16
  .description("remove data from your Firebase at the specified path")
17
17
  .option("-f, --force", "pass this option to bypass confirmation prompt")
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const fs = require("fs");
6
6
  const apiv2_1 = require("../apiv2");
7
7
  const command_1 = require("../command");
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
4
  const url_1 = require("url");
5
- const clc = require("cli-color");
5
+ const clc = require("colorette");
6
6
  const fs = require("fs");
7
7
  const apiv2_1 = require("../apiv2");
8
8
  const command_1 = require("../command");
@@ -7,7 +7,7 @@ const commandUtils = require("../emulator/commandUtils");
7
7
  const logger_1 = require("../logger");
8
8
  const registry_1 = require("../emulator/registry");
9
9
  const types_1 = require("../emulator/types");
10
- const clc = require("cli-color");
10
+ const clc = require("colorette");
11
11
  const constants_1 = require("../emulator/constants");
12
12
  const utils_1 = require("../utils");
13
13
  const Table = require("cli-table");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const semver = require("semver");
6
6
  const refs = require("../extensions/refs");
7
7
  const utils = require("../utils");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const checkMinRequiredVersion_1 = require("../checkMinRequiredVersion");
6
6
  const command_1 = require("../command");
7
7
  const error_1 = require("../error");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const command_1 = require("../command");
6
6
  const commandUtils = require("../emulator/commandUtils");
7
7
  const error_1 = require("../error");
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
4
  const utils = require("../utils");
5
- const clc = require("cli-color");
5
+ const clc = require("colorette");
6
6
  const command_1 = require("../command");
7
7
  const extensionsHelper_1 = require("../extensions/extensionsHelper");
8
8
  const extensionsApi_1 = require("../extensions/extensionsApi");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const Table = require("cli-table");
6
6
  const command_1 = require("../command");
7
7
  const error_1 = require("../error");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const { marked } = require("marked");
6
6
  const TerminalRenderer = require("marked-terminal");
7
7
  const command_1 = require("../command");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const { marked } = require("marked");
6
6
  const command_1 = require("../command");
7
7
  const extensionsApi_1 = require("../extensions/extensionsApi");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const semver = require("semver");
6
6
  const refs = require("../extensions/refs");
7
7
  const utils = require("../utils");
@@ -7,7 +7,7 @@ const extensionsApi_1 = require("../extensions/extensionsApi");
7
7
  const utils = require("../utils");
8
8
  const refs = require("../extensions/refs");
9
9
  const prompt_1 = require("../prompt");
10
- const clc = require("cli-color");
10
+ const clc = require("colorette");
11
11
  const requireAuth_1 = require("../requireAuth");
12
12
  const error_1 = require("../error");
13
13
  const checkMinRequiredVersion_1 = require("../checkMinRequiredVersion");
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
4
  const Table = require("cli-table");
5
- const clc = require("cli-color");
5
+ const clc = require("colorette");
6
6
  const utils = require("../utils");
7
7
  const command_1 = require("../command");
8
8
  const cloudmonitoring_1 = require("../gcp/cloudmonitoring");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const checkMinRequiredVersion_1 = require("../checkMinRequiredVersion");
6
6
  const command_1 = require("../command");
7
7
  const extensionsApi = require("../extensions/extensionsApi");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const { marked } = require("marked");
6
6
  const TerminalRenderer = require("marked-terminal");
7
7
  const displayExtensionInfo_1 = require("../extensions/displayExtensionInfo");
@@ -89,7 +89,7 @@ exports.command = new command_1.Command("ext:install [extensionName]")
89
89
  throw new error_1.FirebaseError(`Could not find the extension.yaml for extension '${clc.bold(extensionName)}'. Please make sure this is a valid extension and try again.`);
90
90
  }
91
91
  if (learnMore) {
92
- utils.logLabeledBullet(extensionsHelper_1.logPrefix, `You selected: ${clc.bold(spec.displayName)}.\n` +
92
+ utils.logLabeledBullet(extensionsHelper_1.logPrefix, `You selected: ${clc.bold(spec.displayName || "")}.\n` +
93
93
  `${spec.description}\n` +
94
94
  `View details: https://firebase.google.com/products/extensions/${spec.name}\n`);
95
95
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const { marked } = require("marked");
6
6
  const TerminalRenderer = require("marked-terminal");
7
7
  const checkMinRequiredVersion_1 = require("../checkMinRequiredVersion");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const checkMinRequiredVersion_1 = require("../checkMinRequiredVersion");
6
6
  const command_1 = require("../command");
7
7
  const projectUtils_1 = require("../projectUtils");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const command_1 = require("../command");
6
6
  const types_1 = require("../emulator/types");
7
7
  const commandUtils_1 = require("../emulator/commandUtils");
@@ -12,7 +12,7 @@ const utils = require("../utils");
12
12
  function getConfirmationMessage(deleteOp, options) {
13
13
  if (options.allCollections) {
14
14
  return ("You are about to delete " +
15
- clc.bold.yellow.underline("THE ENTIRE DATABASE") +
15
+ clc.bold(clc.yellow(clc.underline("THE ENTIRE DATABASE"))) +
16
16
  " for " +
17
17
  clc.cyan(options.project) +
18
18
  ". Are you sure?");
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
4
  const command_1 = require("../command");
5
- const clc = require("cli-color");
5
+ const clc = require("colorette");
6
6
  const fsi = require("../firestore/indexes");
7
7
  const logger_1 = require("../logger");
8
8
  const requirePermissions_1 = require("../requirePermissions");
@@ -20,11 +20,11 @@ exports.command = new command_1.Command("firestore:indexes")
20
20
  const fieldOverrides = await indexApi.listFieldOverrides(options.project);
21
21
  const indexSpec = indexApi.makeIndexSpec(indexes, fieldOverrides);
22
22
  if (options.pretty) {
23
- logger_1.logger.info(clc.bold.white("Compound Indexes"));
23
+ logger_1.logger.info(clc.bold(clc.white("Compound Indexes")));
24
24
  indexApi.prettyPrintIndexes(indexes);
25
25
  if (fieldOverrides) {
26
26
  logger_1.logger.info();
27
- logger_1.logger.info(clc.bold.white("Field Overrides"));
27
+ logger_1.logger.info(clc.bold(clc.white("Field Overrides")));
28
28
  indexApi.printFieldOverrides(fieldOverrides);
29
29
  }
30
30
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const command_1 = require("../command");
6
6
  const error_1 = require("../error");
7
7
  const logger_1 = require("../logger");
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
4
  const path = require("path");
5
- const clc = require("cli-color");
5
+ const clc = require("colorette");
6
6
  const requireInteractive_1 = require("../requireInteractive");
7
7
  const command_1 = require("../command");
8
8
  const error_1 = require("../error");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const command_1 = require("../command");
6
6
  const error_1 = require("../error");
7
7
  const logger_1 = require("../logger");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const command_1 = require("../command");
6
6
  const logger_1 = require("../logger");
7
7
  const requirePermissions_1 = require("../requirePermissions");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const functionsConfig = require("../functionsConfig");
6
6
  const command_1 = require("../command");
7
7
  const error_1 = require("../error");
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
4
  const tty = require("tty");
5
5
  const fs = require("fs");
6
- const clc = require("cli-color");
6
+ const clc = require("colorette");
7
7
  const secrets_1 = require("../functions/secrets");
8
8
  const command_1 = require("../command");
9
9
  const requirePermissions_1 = require("../requirePermissions");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const clc = require("cli-color");
4
+ const clc = require("colorette");
5
5
  const command_1 = require("../command");
6
6
  const logger_1 = require("../logger");
7
7
  const utils = require("../utils");
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const cli_color_1 = require("cli-color");
4
+ const colorette_1 = require("colorette");
5
5
  const api_1 = require("../hosting/api");
6
6
  const command_1 = require("../command");
7
7
  const expireUtils_1 = require("../hosting/expireUtils");
@@ -46,7 +46,7 @@ exports.command = new command_1.Command("hosting:channel:create [channelId]")
46
46
  }
47
47
  catch (e) {
48
48
  if (e.status === 409) {
49
- throw new error_1.FirebaseError(`Channel ${(0, cli_color_1.bold)(channelId)} already exists on site ${(0, cli_color_1.bold)(site)}. Deploy to ${(0, cli_color_1.bold)(channelId)} with: ${(0, cli_color_1.yellow)(`firebase hosting:channel:deploy ${channelId}`)}`, { original: e });
49
+ throw new error_1.FirebaseError(`Channel ${(0, colorette_1.bold)(channelId)} already exists on site ${(0, colorette_1.bold)(site)}. Deploy to ${(0, colorette_1.bold)(channelId)} with: ${(0, colorette_1.yellow)(`firebase hosting:channel:deploy ${channelId}`)}`, { original: e });
50
50
  }
51
51
  throw e;
52
52
  }
@@ -58,10 +58,10 @@ exports.command = new command_1.Command("hosting:channel:create [channelId]")
58
58
  logger_1.logger.debug("[hosting] unable to add auth domain", e);
59
59
  }
60
60
  logger_1.logger.info();
61
- (0, utils_1.logLabeledSuccess)(LOG_TAG, `Channel ${(0, cli_color_1.bold)(channelId)} has been created on site ${(0, cli_color_1.bold)(site)}.`);
62
- (0, utils_1.logLabeledSuccess)(LOG_TAG, `Channel ${(0, cli_color_1.bold)(channelId)} will expire at ${(0, cli_color_1.bold)((0, utils_1.datetimeString)(new Date(channel.expireTime)))}.`);
61
+ (0, utils_1.logLabeledSuccess)(LOG_TAG, `Channel ${(0, colorette_1.bold)(channelId)} has been created on site ${(0, colorette_1.bold)(site)}.`);
62
+ (0, utils_1.logLabeledSuccess)(LOG_TAG, `Channel ${(0, colorette_1.bold)(channelId)} will expire at ${(0, colorette_1.bold)((0, utils_1.datetimeString)(new Date(channel.expireTime)))}.`);
63
63
  (0, utils_1.logLabeledSuccess)(LOG_TAG, `Channel URL: ${channel.url}`);
64
64
  logger_1.logger.info();
65
- logger_1.logger.info(`To deploy to this channel, use ${(0, cli_color_1.yellow)(`firebase hosting:channel:deploy ${channelId}`)}.`);
65
+ logger_1.logger.info(`To deploy to this channel, use ${(0, colorette_1.yellow)(`firebase hosting:channel:deploy ${channelId}`)}.`);
66
66
  return channel;
67
67
  });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.command = void 0;
4
- const cli_color_1 = require("cli-color");
4
+ const colorette_1 = require("colorette");
5
5
  const { marked } = require("marked");
6
6
  const command_1 = require("../command");
7
7
  const utils_1 = require("../utils");
@@ -27,7 +27,7 @@ exports.command = new command_1.Command("hosting:channel:delete <channelId>")
27
27
  const confirmed = await (0, prompt_1.promptOnce)({
28
28
  name: "force",
29
29
  type: "confirm",
30
- message: `Are you sure you want to delete the Hosting Channel ${(0, cli_color_1.underline)(channelId)} for site ${(0, cli_color_1.underline)(siteId)}?`,
30
+ message: `Are you sure you want to delete the Hosting Channel ${(0, colorette_1.underline)(channelId)} for site ${(0, colorette_1.underline)(siteId)}?`,
31
31
  default: false,
32
32
  }, options);
33
33
  if (!confirmed) {
@@ -43,5 +43,5 @@ exports.command = new command_1.Command("hosting:channel:delete <channelId>")
43
43
  logger_1.logger.debug("[hosting] unable to remove auth domain", e);
44
44
  }
45
45
  }
46
- (0, utils_1.logLabeledSuccess)("hosting:channels", `Successfully deleted channel ${(0, cli_color_1.bold)(channelId)} for site ${(0, cli_color_1.bold)(siteId)}.`);
46
+ (0, utils_1.logLabeledSuccess)("hosting:channels", `Successfully deleted channel ${(0, colorette_1.bold)(channelId)} for site ${(0, colorette_1.bold)(siteId)}.`);
47
47
  });