firebase-tools 11.4.2 → 11.7.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.
- package/lib/accountImporter.js +1 -1
- package/lib/auth.js +3 -4
- package/lib/bin/firebase.js +4 -4
- package/lib/command.js +35 -10
- package/lib/commands/apps-android-sha-create.js +1 -1
- package/lib/commands/apps-android-sha-delete.js +1 -1
- package/lib/commands/apps-create.js +1 -1
- package/lib/commands/apps-list.js +1 -1
- package/lib/commands/auth-export.js +1 -1
- package/lib/commands/auth-import.js +1 -1
- package/lib/commands/crashlytics-mappingfile-generateid.js +26 -0
- package/lib/commands/crashlytics-mappingfile-upload.js +46 -0
- package/lib/commands/crashlytics-symbols-upload.js +18 -87
- package/lib/commands/database-instances-list.js +1 -1
- package/lib/commands/database-push.js +1 -1
- package/lib/commands/database-remove.js +1 -1
- package/lib/commands/database-set.js +1 -1
- package/lib/commands/database-update.js +1 -1
- package/lib/commands/emulators-exec.js +4 -1
- package/lib/commands/emulators-export.js +5 -2
- package/lib/commands/emulators-start.js +24 -18
- package/lib/commands/ext-dev-deprecate.js +1 -1
- package/lib/commands/ext-dev-emulators-exec.js +1 -1
- package/lib/commands/ext-dev-emulators-start.js +1 -1
- package/lib/commands/ext-dev-extension-delete.js +1 -1
- package/lib/commands/ext-dev-list.js +1 -1
- package/lib/commands/ext-dev-publish.js +4 -1
- package/lib/commands/ext-dev-register.js +1 -1
- package/lib/commands/ext-dev-undeprecate.js +1 -1
- package/lib/commands/ext-dev-unpublish.js +1 -1
- package/lib/commands/ext-dev-usage.js +1 -1
- package/lib/commands/ext-info.js +1 -1
- package/lib/commands/ext-install.js +2 -2
- package/lib/commands/ext-update.js +1 -1
- package/lib/commands/ext.js +1 -1
- package/lib/commands/firestore-delete.js +2 -2
- package/lib/commands/firestore-indexes-list.js +3 -3
- package/lib/commands/functions-config-clone.js +1 -1
- package/lib/commands/functions-config-export.js +1 -1
- package/lib/commands/functions-config-set.js +1 -1
- package/lib/commands/functions-config-unset.js +1 -1
- package/lib/commands/functions-delete.js +3 -1
- package/lib/commands/functions-secrets-get.js +2 -0
- package/lib/commands/functions-secrets-set.js +1 -1
- package/lib/commands/help.js +1 -1
- package/lib/commands/hosting-channel-create.js +5 -5
- package/lib/commands/hosting-channel-delete.js +3 -3
- package/lib/commands/hosting-channel-deploy.js +6 -6
- package/lib/commands/hosting-channel-list.js +2 -2
- package/lib/commands/hosting-channel-open.js +2 -2
- package/lib/commands/hosting-clone.js +8 -8
- package/lib/commands/hosting-disable.js +1 -1
- package/lib/commands/hosting-sites-create.js +4 -4
- package/lib/commands/hosting-sites-delete.js +4 -4
- package/lib/commands/hosting-sites-list.js +2 -2
- package/lib/commands/index.js +3 -0
- package/lib/commands/init.js +5 -5
- package/lib/commands/login-add.js +1 -1
- package/lib/commands/login-ci.js +2 -2
- package/lib/commands/login-list.js +1 -1
- package/lib/commands/login-use.js +1 -1
- package/lib/commands/login.js +3 -3
- package/lib/commands/logout.js +1 -1
- package/lib/commands/open.js +3 -3
- package/lib/commands/projects-list.js +2 -2
- package/lib/commands/serve.js +1 -1
- package/lib/commands/target-apply.js +1 -1
- package/lib/commands/target-clear.js +1 -1
- package/lib/commands/target-remove.js +1 -1
- package/lib/commands/target.js +1 -1
- package/lib/commands/use.js +7 -7
- package/lib/config.js +1 -1
- package/lib/crashlytics/buildToolsJarHelper.js +51 -0
- package/lib/deploy/database/prepare.js +3 -3
- package/lib/deploy/database/release.js +3 -3
- package/lib/deploy/extensions/deploymentSummary.js +1 -1
- package/lib/deploy/extensions/errors.js +1 -1
- package/lib/deploy/extensions/secrets.js +1 -1
- package/lib/deploy/extensions/tasks.js +2 -2
- package/lib/deploy/firestore/deploy.js +2 -2
- package/lib/deploy/firestore/prepare.js +2 -2
- package/lib/deploy/functions/backend.js +4 -4
- package/lib/deploy/functions/build.js +78 -8
- package/lib/deploy/functions/checkIam.js +9 -8
- package/lib/deploy/functions/containerCleaner.js +2 -2
- package/lib/deploy/functions/deploy.js +2 -2
- package/lib/deploy/functions/ensure.js +1 -1
- package/lib/deploy/functions/params.js +15 -15
- package/lib/deploy/functions/prepare.js +1 -1
- package/lib/deploy/functions/prepareFunctionsUpload.js +2 -2
- package/lib/deploy/functions/prompts.js +1 -1
- package/lib/deploy/functions/release/fabricator.js +24 -7
- package/lib/deploy/functions/release/index.js +3 -1
- package/lib/deploy/functions/release/reporter.js +1 -1
- package/lib/deploy/functions/runtimes/discovery/index.js +1 -16
- package/lib/deploy/functions/runtimes/discovery/parsing.js +16 -0
- package/lib/deploy/functions/runtimes/discovery/v1alpha1.js +59 -131
- package/lib/deploy/functions/runtimes/node/parseRuntimeAndValidateSDK.js +1 -1
- package/lib/deploy/functions/runtimes/node/parseTriggers.js +2 -6
- package/lib/deploy/functions/runtimes/node/versioning.js +4 -4
- package/lib/deploy/functions/validate.js +1 -1
- package/lib/deploy/hosting/deploy.js +10 -9
- package/lib/deploy/hosting/uploader.js +2 -2
- package/lib/deploy/hosting/validate.js +2 -2
- package/lib/deploy/index.js +7 -7
- package/lib/deploy/lifecycleHooks.js +5 -2
- package/lib/deploy/storage/prepare.js +5 -3
- package/lib/deploy/storage/release.js +7 -6
- package/lib/emulator/auth/index.js +7 -2
- package/lib/emulator/auth/operations.js +10 -10
- package/lib/emulator/commandUtils.js +33 -16
- package/lib/emulator/constants.js +14 -6
- package/lib/emulator/controller.js +50 -18
- package/lib/emulator/databaseEmulator.js +1 -1
- package/lib/emulator/downloadableEmulators.js +8 -8
- package/lib/emulator/emulatorLogger.js +1 -1
- package/lib/emulator/eventarcEmulator.js +148 -0
- package/lib/emulator/extensionsEmulator.js +5 -3
- package/lib/emulator/firestoreEmulator.js +1 -1
- package/lib/emulator/functionsEmulator.js +66 -14
- package/lib/emulator/functionsEmulatorRuntime.js +12 -23
- package/lib/emulator/functionsEmulatorShared.js +6 -1
- package/lib/emulator/hub.js +7 -3
- package/lib/emulator/hubClient.js +2 -2
- package/lib/emulator/hubExport.js +22 -2
- package/lib/emulator/loggingEmulator.js +2 -2
- package/lib/emulator/registry.js +1 -0
- package/lib/emulator/storage/apis/firebase.js +26 -12
- package/lib/emulator/storage/apis/gcloud.js +15 -8
- package/lib/emulator/storage/files.js +21 -4
- package/lib/emulator/storage/multipart.js +6 -5
- package/lib/emulator/storage/rules/runtime.js +3 -3
- package/lib/emulator/storage/rules/utils.js +4 -2
- package/lib/emulator/storage/server.js +2 -1
- package/lib/emulator/storage/upload.js +1 -0
- package/lib/emulator/types.js +4 -0
- package/lib/emulator/ui.js +7 -2
- package/lib/ensureApiEnabled.js +7 -7
- package/lib/extensions/askUserForConsent.js +1 -1
- package/lib/extensions/askUserForEventsConfig.js +1 -1
- package/lib/extensions/askUserForParam.js +1 -1
- package/lib/extensions/changelog.js +2 -2
- package/lib/extensions/checkProjectBilling.js +2 -2
- package/lib/extensions/displayExtensionInfo.js +1 -1
- package/lib/extensions/extensionsApi.js +3 -2
- package/lib/extensions/extensionsHelper.js +30 -2
- package/lib/extensions/listExtensions.js +1 -1
- package/lib/extensions/manifest.js +1 -1
- package/lib/extensions/metricsUtils.js +1 -1
- package/lib/extensions/paramHelper.js +1 -1
- package/lib/extensions/updateHelper.js +2 -2
- package/lib/extensions/warnings.js +2 -2
- package/lib/fetchMOTD.js +1 -1
- package/lib/firestore/delete.js +1 -1
- package/lib/firestore/indexes.js +2 -2
- package/lib/firestore/validator.js +1 -1
- package/lib/functions/env.js +11 -11
- package/lib/functions/runtimeConfigExport.js +1 -1
- package/lib/functionsConfig.js +1 -1
- package/lib/functionsConfigClone.js +1 -1
- package/lib/functionsShellCommandAction.js +1 -1
- package/lib/gcp/cloudfunctions.js +3 -3
- package/lib/gcp/cloudfunctionsv2.js +5 -5
- package/lib/gcp/cloudscheduler.js +63 -22
- package/lib/gcp/cloudtasks.js +17 -1
- package/lib/gcp/serviceusage.js +2 -2
- package/lib/handlePreviewToggles.js +4 -4
- package/lib/hosting/implicitInit.js +1 -1
- package/lib/hosting/normalizedHostingConfigs.js +3 -3
- package/lib/index.js +2 -2
- package/lib/init/features/database.js +1 -1
- package/lib/init/features/emulators.js +1 -1
- package/lib/init/features/firestore/index.js +2 -2
- package/lib/init/features/firestore/indexes.js +1 -1
- package/lib/init/features/firestore/rules.js +1 -1
- package/lib/init/features/functions/golang.js +1 -1
- package/lib/init/features/functions/index.js +8 -1
- package/lib/init/features/hosting/github.js +9 -9
- package/lib/init/features/hosting/index.js +1 -1
- package/lib/init/features/project.js +1 -1
- package/lib/init/features/remoteconfig.js +1 -1
- package/lib/init/features/storage.js +1 -1
- package/lib/init/index.js +1 -1
- package/lib/logError.js +3 -3
- package/lib/management/projects.js +1 -1
- package/lib/parseBoltRules.js +1 -1
- package/lib/profileReport.js +2 -2
- package/lib/projectUtils.js +1 -1
- package/lib/rc.js +1 -1
- package/lib/requireAuth.js +1 -1
- package/lib/requireDatabaseInstance.js +2 -2
- package/lib/requirePermissions.js +2 -2
- package/lib/rulesDeploy.js +11 -12
- package/lib/serve/hosting.js +2 -1
- package/lib/serve/index.js +15 -0
- package/lib/track.js +122 -3
- package/lib/utils.js +24 -11
- package/npm-shrinkwrap.json +523 -294
- package/package.json +6 -4
- package/schema/firebase-config.json +12 -0
- package/templates/extensions/CHANGELOG.md +1 -7
- package/templates/hosting/init.js +6 -2
|
@@ -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("
|
|
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");
|
package/lib/commands/login-ci.js
CHANGED
|
@@ -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("
|
|
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");
|
|
@@ -19,7 +19,7 @@ exports.command = new command_1.Command("login:ci")
|
|
|
19
19
|
const userCredentials = await auth.loginGoogle(options.localhost);
|
|
20
20
|
logger_1.logger.info();
|
|
21
21
|
utils.logSuccess("Success! Use this token to login on a CI server:\n\n" +
|
|
22
|
-
clc.bold(userCredentials.tokens.refresh_token) +
|
|
22
|
+
clc.bold(userCredentials.tokens.refresh_token || "") +
|
|
23
23
|
'\n\nExample: firebase deploy --token "$FIREBASE_TOKEN"\n');
|
|
24
24
|
return userCredentials;
|
|
25
25
|
});
|
|
@@ -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("
|
|
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 clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const command_1 = require("../command");
|
|
6
6
|
const utils = require("../utils");
|
|
7
7
|
const auth = require("../auth");
|
package/lib/commands/login.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.command = void 0;
|
|
4
4
|
const _ = require("lodash");
|
|
5
|
-
const clc = require("
|
|
5
|
+
const clc = require("colorette");
|
|
6
6
|
const command_1 = require("../command");
|
|
7
7
|
const logger_1 = require("../logger");
|
|
8
8
|
const configstore_1 = require("../configstore");
|
|
@@ -28,11 +28,11 @@ exports.command = new command_1.Command("login")
|
|
|
28
28
|
return user;
|
|
29
29
|
}
|
|
30
30
|
if (!options.reauth) {
|
|
31
|
-
utils.logBullet("Firebase optionally collects CLI usage and error reporting information to help improve our products. Data is collected in accordance with Google's privacy policy (https://policies.google.com/privacy) and is not used to identify you.\n");
|
|
31
|
+
utils.logBullet("Firebase optionally collects CLI and Emulator Suite usage and error reporting information to help improve our products. Data is collected in accordance with Google's privacy policy (https://policies.google.com/privacy) and is not used to identify you.\n");
|
|
32
32
|
const collectUsage = await (0, prompt_1.promptOnce)({
|
|
33
33
|
type: "confirm",
|
|
34
34
|
name: "collectUsage",
|
|
35
|
-
message: "Allow Firebase to collect CLI usage and error reporting information?",
|
|
35
|
+
message: "Allow Firebase to collect CLI and Emulator Suite usage and error reporting information?",
|
|
36
36
|
});
|
|
37
37
|
configstore_1.configstore.set("usage", collectUsage);
|
|
38
38
|
if (collectUsage) {
|
package/lib/commands/logout.js
CHANGED
|
@@ -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 logger_1 = require("../logger");
|
|
6
|
-
const clc = require("
|
|
6
|
+
const clc = require("colorette");
|
|
7
7
|
const utils = require("../utils");
|
|
8
8
|
const auth = require("../auth");
|
|
9
9
|
const prompt_1 = require("../prompt");
|
package/lib/commands/open.js
CHANGED
|
@@ -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("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const open = require("open");
|
|
6
6
|
const error_1 = require("../error");
|
|
7
7
|
const api = require("../api");
|
|
@@ -79,10 +79,10 @@ exports.command = new command_1.Command("open [link]")
|
|
|
79
79
|
throw new error_1.FirebaseError(`Unable to determine URL for link: ${link}`);
|
|
80
80
|
}
|
|
81
81
|
if (link.arg !== linkName) {
|
|
82
|
-
logger_1.logger.info(`${clc.bold.cyan("Tip:")} You can also run ${clc.bold.underline(`firebase open ${link.arg}`)}`);
|
|
82
|
+
logger_1.logger.info(`${clc.bold(clc.cyan("Tip:"))} You can also run ${clc.bold(clc.underline(`firebase open ${link.arg}`))}`);
|
|
83
83
|
logger_1.logger.info();
|
|
84
84
|
}
|
|
85
85
|
logger_1.logger.info(`Opening ${clc.bold(link.name)} link in your default browser:`);
|
|
86
|
-
logger_1.logger.info(clc.bold.underline(url));
|
|
86
|
+
logger_1.logger.info(clc.bold(clc.underline(url)));
|
|
87
87
|
open(url);
|
|
88
88
|
});
|
|
@@ -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("
|
|
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");
|
|
@@ -22,7 +22,7 @@ function logProjectsList(projects, currentProjectId) {
|
|
|
22
22
|
const table = new Table({ head: tableHead, style: { head: ["green"] } });
|
|
23
23
|
projects.forEach(({ projectId, projectNumber, displayName, resources }) => {
|
|
24
24
|
if (projectId === currentProjectId) {
|
|
25
|
-
projectId = clc.cyan.bold(`${projectId} (current)`);
|
|
25
|
+
projectId = clc.cyan(clc.bold(`${projectId} (current)`));
|
|
26
26
|
}
|
|
27
27
|
table.push([
|
|
28
28
|
displayName || NOT_SPECIFIED,
|
package/lib/commands/serve.js
CHANGED
|
@@ -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("
|
|
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 clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const command_1 = require("../command");
|
|
6
6
|
const logger_1 = require("../logger");
|
|
7
7
|
const requireConfig_1 = require("../requireConfig");
|
|
@@ -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("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const command_1 = require("../command");
|
|
6
6
|
const requireConfig_1 = require("../requireConfig");
|
|
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("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const command_1 = require("../command");
|
|
6
6
|
const requireConfig_1 = require("../requireConfig");
|
|
7
7
|
const utils = require("../utils");
|
package/lib/commands/target.js
CHANGED
|
@@ -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("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const command_1 = require("../command");
|
|
6
6
|
const logger_1 = require("../logger");
|
|
7
7
|
const requireConfig_1 = require("../requireConfig");
|
package/lib/commands/use.js
CHANGED
|
@@ -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("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const command_1 = require("../command");
|
|
6
6
|
const projects_1 = require("../management/projects");
|
|
7
7
|
const logger_1 = require("../logger");
|
|
@@ -11,12 +11,12 @@ const command_2 = require("../command");
|
|
|
11
11
|
const utils = require("../utils");
|
|
12
12
|
function listAliases(options) {
|
|
13
13
|
if (options.rc.hasProjects) {
|
|
14
|
-
logger_1.logger.info("Project aliases for", clc.bold(options.projectRoot) + ":");
|
|
14
|
+
logger_1.logger.info("Project aliases for", clc.bold(options.projectRoot || "") + ":");
|
|
15
15
|
logger_1.logger.info();
|
|
16
16
|
for (const [alias, projectId] of Object.entries(options.rc.projects)) {
|
|
17
17
|
const listing = alias + " (" + projectId + ")";
|
|
18
18
|
if (options.project === projectId || options.projectAlias === alias) {
|
|
19
|
-
logger_1.logger.info(clc.cyan.bold("* " + listing));
|
|
19
|
+
logger_1.logger.info(clc.cyan(clc.bold("* " + listing)));
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
22
|
logger_1.logger.info(" " + listing);
|
|
@@ -121,8 +121,8 @@ exports.command = new command_1.Command("use [alias_or_project_id]")
|
|
|
121
121
|
options.rc.addProjectAlias(results.alias, results.project);
|
|
122
122
|
utils.makeActiveProject(options.projectRoot, results.alias);
|
|
123
123
|
logger_1.logger.info();
|
|
124
|
-
logger_1.logger.info("Created alias", clc.bold(results.alias), "for", results.project + ".");
|
|
125
|
-
logger_1.logger.info("Now using alias", clc.bold(results.alias) + " (" + results.project + ")");
|
|
124
|
+
logger_1.logger.info("Created alias", clc.bold(results.alias || ""), "for", results.project + ".");
|
|
125
|
+
logger_1.logger.info("Now using alias", clc.bold(results.alias || "") + " (" + results.project + ")");
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
128
|
}
|
|
@@ -143,10 +143,10 @@ exports.command = new command_1.Command("use [alias_or_project_id]")
|
|
|
143
143
|
return utils.reject("No active project");
|
|
144
144
|
}
|
|
145
145
|
if (options.projectAlias) {
|
|
146
|
-
logger_1.logger.info("Active Project:", clc.bold.cyan(options.projectAlias + " (" + options.project + ")"));
|
|
146
|
+
logger_1.logger.info("Active Project:", clc.bold(clc.cyan(options.projectAlias + " (" + options.project + ")")));
|
|
147
147
|
}
|
|
148
148
|
else if (options.project) {
|
|
149
|
-
logger_1.logger.info("Active Project:", clc.bold.cyan(options.project));
|
|
149
|
+
logger_1.logger.info("Active Project:", clc.bold(clc.cyan(options.project)));
|
|
150
150
|
}
|
|
151
151
|
else {
|
|
152
152
|
let msg = "No project is currently active";
|
package/lib/config.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Config = void 0;
|
|
4
4
|
const _ = require("lodash");
|
|
5
|
-
const clc = require("
|
|
5
|
+
const clc = require("colorette");
|
|
6
6
|
const fs = require("fs-extra");
|
|
7
7
|
const path = require("path");
|
|
8
8
|
const cjson = require("cjson");
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runBuildtoolsCommand = exports.fetchBuildtoolsJar = void 0;
|
|
4
|
+
const fs = require("fs-extra");
|
|
5
|
+
const os = require("os");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const spawn = require("cross-spawn");
|
|
8
|
+
const downloadUtils = require("../downloadUtils");
|
|
9
|
+
const error_1 = require("../error");
|
|
10
|
+
const logger_1 = require("../logger");
|
|
11
|
+
const rimraf = require("rimraf");
|
|
12
|
+
const utils = require("../utils");
|
|
13
|
+
const JAR_CACHE_DIR = process.env.FIREBASE_CRASHLYTICS_BUILDTOOLS_PATH ||
|
|
14
|
+
path.join(os.homedir(), ".cache", "firebase", "crashlytics", "buildtools");
|
|
15
|
+
const JAR_VERSION = "2.9.1";
|
|
16
|
+
const JAR_URL = `https://dl.google.com/android/maven2/com/google/firebase/firebase-crashlytics-buildtools/${JAR_VERSION}/firebase-crashlytics-buildtools-${JAR_VERSION}.jar`;
|
|
17
|
+
async function fetchBuildtoolsJar() {
|
|
18
|
+
if (process.env.CRASHLYTICS_LOCAL_JAR) {
|
|
19
|
+
return process.env.CRASHLYTICS_LOCAL_JAR;
|
|
20
|
+
}
|
|
21
|
+
const jarPath = path.join(JAR_CACHE_DIR, `crashlytics-buildtools-${JAR_VERSION}.jar`);
|
|
22
|
+
if (fs.existsSync(jarPath)) {
|
|
23
|
+
logger_1.logger.debug(`Buildtools Jar already downloaded at ${jarPath}`);
|
|
24
|
+
return jarPath;
|
|
25
|
+
}
|
|
26
|
+
if (fs.existsSync(JAR_CACHE_DIR)) {
|
|
27
|
+
logger_1.logger.debug(`Deleting Jar cache at ${JAR_CACHE_DIR} because the CLI was run with a newer Jar version`);
|
|
28
|
+
rimraf.sync(JAR_CACHE_DIR);
|
|
29
|
+
}
|
|
30
|
+
utils.logBullet("Downloading crashlytics-buildtools.jar to " + jarPath);
|
|
31
|
+
utils.logBullet("For open source licenses used by this command, look in the META-INF directory in the buildtools.jar file");
|
|
32
|
+
const tmpfile = await downloadUtils.downloadToTmp(JAR_URL);
|
|
33
|
+
fs.mkdirSync(JAR_CACHE_DIR, { recursive: true });
|
|
34
|
+
fs.copySync(tmpfile, jarPath);
|
|
35
|
+
return jarPath;
|
|
36
|
+
}
|
|
37
|
+
exports.fetchBuildtoolsJar = fetchBuildtoolsJar;
|
|
38
|
+
function runBuildtoolsCommand(jarFile, args, debug) {
|
|
39
|
+
var _a;
|
|
40
|
+
const fullArgs = ["-jar", jarFile, ...args, "-clientName", "firebase-cli;crashlytics-buildtools"];
|
|
41
|
+
const outputs = spawn.sync("java", fullArgs, {
|
|
42
|
+
stdio: debug ? "inherit" : "pipe",
|
|
43
|
+
});
|
|
44
|
+
if (outputs.status !== 0) {
|
|
45
|
+
if (!debug) {
|
|
46
|
+
utils.logWarning(((_a = outputs.stdout) === null || _a === void 0 ? void 0 : _a.toString()) || "An unknown error occurred");
|
|
47
|
+
}
|
|
48
|
+
throw new error_1.FirebaseError(`java command failed with args: ${fullArgs}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.runBuildtoolsCommand = runBuildtoolsCommand;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.prepare = void 0;
|
|
4
|
-
const clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const error_1 = require("../../error");
|
|
7
7
|
const parseBoltRules_1 = require("../../parseBoltRules");
|
|
@@ -39,12 +39,12 @@ function prepare(context, options) {
|
|
|
39
39
|
deploys: deploys,
|
|
40
40
|
ruleFiles: ruleFiles,
|
|
41
41
|
};
|
|
42
|
-
utils.logBullet(clc.bold.cyan("database: ") + "checking rules syntax...");
|
|
42
|
+
utils.logBullet(clc.bold(clc.cyan("database: ")) + "checking rules syntax...");
|
|
43
43
|
return Promise.all(deploys.map((deploy) => {
|
|
44
44
|
return rtdb
|
|
45
45
|
.updateRules(context.projectId, deploy.instance, ruleFiles[deploy.rules], { dryRun: true })
|
|
46
46
|
.then(() => {
|
|
47
|
-
utils.logSuccess(clc.bold.green("database: ") +
|
|
47
|
+
utils.logSuccess(clc.bold(clc.green("database: ")) +
|
|
48
48
|
"rules syntax for database " +
|
|
49
49
|
clc.bold(deploy.instance) +
|
|
50
50
|
" is valid");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.release = void 0;
|
|
4
|
-
const clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const rtdb = require("../../rtdb");
|
|
6
6
|
const utils = require("../../utils");
|
|
7
7
|
function release(context) {
|
|
@@ -13,14 +13,14 @@ function release(context) {
|
|
|
13
13
|
}
|
|
14
14
|
const deploys = context.database.deploys;
|
|
15
15
|
const ruleFiles = context.database.ruleFiles;
|
|
16
|
-
utils.logBullet(clc.bold.cyan("database: ") + "releasing rules...");
|
|
16
|
+
utils.logBullet(clc.bold(clc.cyan("database: ")) + "releasing rules...");
|
|
17
17
|
return Promise.all(deploys.map((deploy) => {
|
|
18
18
|
return rtdb
|
|
19
19
|
.updateRules(context.projectId, deploy.instance, ruleFiles[deploy.rules], {
|
|
20
20
|
dryRun: false,
|
|
21
21
|
})
|
|
22
22
|
.then(() => {
|
|
23
|
-
utils.logSuccess(clc.bold.green("database: ") +
|
|
23
|
+
utils.logSuccess(clc.bold(clc.green("database: ")) +
|
|
24
24
|
"rules for database " +
|
|
25
25
|
clc.bold(deploy.instance) +
|
|
26
26
|
" released successfully");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.deletesSummary = exports.configuresSummary = exports.updatesSummary = exports.createsSummary = exports.humanReadable = void 0;
|
|
4
|
-
const clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const refs = require("../../extensions/refs");
|
|
6
6
|
const humanReadable = (dep) => `${clc.bold(dep.instanceId)} (${dep.ref ? `${refs.toExtensionVersionRef(dep.ref)}` : `Installed from local source`})`;
|
|
7
7
|
exports.humanReadable = humanReadable;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ErrorHandler = void 0;
|
|
4
|
-
const clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const logger_1 = require("../../logger");
|
|
6
6
|
class ErrorHandler {
|
|
7
7
|
constructor() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.checkSpecForSecrets = exports.handleSecretParams = void 0;
|
|
4
|
-
const clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const secretUtils = require("../../extensions/secretsUtils");
|
|
6
6
|
const secretManager = require("../../gcp/secretManager");
|
|
7
7
|
const planner_1 = require("./planner");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.deleteExtensionInstanceTask = exports.configureExtensionInstanceTask = exports.updateExtensionInstanceTask = exports.createExtensionInstanceTask = exports.extensionsDeploymentHandler = void 0;
|
|
4
|
-
const clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const error_1 = require("../../error");
|
|
6
6
|
const extensionsApi = require("../../extensions/extensionsApi");
|
|
7
7
|
const extensionsHelper_1 = require("../../extensions/extensionsHelper");
|
|
@@ -146,5 +146,5 @@ function deleteExtensionInstanceTask(projectId, instanceSpec) {
|
|
|
146
146
|
exports.deleteExtensionInstanceTask = deleteExtensionInstanceTask;
|
|
147
147
|
function printSuccess(instanceId, type, validateOnly) {
|
|
148
148
|
const action = validateOnly ? `validated ${type} for` : `${type}d`;
|
|
149
|
-
utils.logSuccess(clc.bold.green("extensions") + ` Successfully ${action} ${instanceId}`);
|
|
149
|
+
utils.logSuccess(clc.bold(clc.green("extensions")) + ` Successfully ${action} ${instanceId}`);
|
|
150
150
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const _ = require("lodash");
|
|
4
|
-
const clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const error_1 = require("../../error");
|
|
6
6
|
const indexes_1 = require("../../firestore/indexes");
|
|
7
7
|
const logger_1 = require("../../logger");
|
|
@@ -30,7 +30,7 @@ async function deployIndexes(context, options) {
|
|
|
30
30
|
}
|
|
31
31
|
const fieldOverrides = indexesSrc.fieldOverrides || [];
|
|
32
32
|
await new indexes_1.FirestoreIndexes().deploy(options, indexes, fieldOverrides);
|
|
33
|
-
utils.logSuccess(`${clc.bold.green("firestore:")} deployed indexes in ${clc.bold(indexesFileName)} successfully`);
|
|
33
|
+
utils.logSuccess(`${clc.bold(clc.green("firestore:"))} deployed indexes in ${clc.bold(indexesFileName)} successfully`);
|
|
34
34
|
}
|
|
35
35
|
async function default_1(context, options) {
|
|
36
36
|
await Promise.all([deployRules(context), deployIndexes(context, options)]);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const _ = require("lodash");
|
|
4
|
-
const clc = require("
|
|
4
|
+
const clc = require("colorette");
|
|
5
5
|
const loadCJSON_1 = require("../../loadCJSON");
|
|
6
6
|
const rulesDeploy_1 = require("../../rulesDeploy");
|
|
7
7
|
const utils = require("../../utils");
|
|
@@ -23,7 +23,7 @@ function prepareIndexes(context, options) {
|
|
|
23
23
|
const indexesFileName = options.config.src.firestore.indexes;
|
|
24
24
|
const indexesPath = options.config.path(indexesFileName);
|
|
25
25
|
const parsedSrc = (0, loadCJSON_1.loadCJSON)(indexesPath);
|
|
26
|
-
utils.logBullet(`${clc.bold.cyan("firestore:")} reading indexes from ${clc.bold(indexesFileName)}...`);
|
|
26
|
+
utils.logBullet(`${clc.bold(clc.cyan("firestore:"))} reading indexes from ${clc.bold(indexesFileName)}...`);
|
|
27
27
|
context.firestore = context.firestore || {};
|
|
28
28
|
context.firestore.indexes = {
|
|
29
29
|
name: indexesFileName,
|
|
@@ -65,8 +65,8 @@ function memoryToGen1Cpu(memory) {
|
|
|
65
65
|
2048: 1,
|
|
66
66
|
4096: 2,
|
|
67
67
|
8192: 2,
|
|
68
|
-
16384:
|
|
69
|
-
32768:
|
|
68
|
+
16384: 4,
|
|
69
|
+
32768: 8,
|
|
70
70
|
}[memory];
|
|
71
71
|
}
|
|
72
72
|
exports.memoryToGen1Cpu = memoryToGen1Cpu;
|
|
@@ -79,8 +79,8 @@ function memoryToGen2Cpu(memory) {
|
|
|
79
79
|
2048: 1,
|
|
80
80
|
4096: 2,
|
|
81
81
|
8192: 2,
|
|
82
|
-
16384:
|
|
83
|
-
32768:
|
|
82
|
+
16384: 4,
|
|
83
|
+
32768: 8,
|
|
84
84
|
}[memory];
|
|
85
85
|
}
|
|
86
86
|
exports.memoryToGen2Cpu = memoryToGen2Cpu;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toBackend = exports.resolveBackend = exports.of = exports.empty = void 0;
|
|
3
|
+
exports.toBackend = exports.resolveBackend = exports.AllIngressSettings = exports.AllVpcEgressSettings = exports.AllFunctionsPlatforms = exports.isValidMemoryOption = exports.isBlockingTriggered = exports.isTaskQueueTriggered = exports.isScheduleTriggered = exports.isEventTriggered = exports.isCallableTriggered = exports.isHttpsTriggered = exports.of = exports.empty = void 0;
|
|
4
4
|
const backend = require("./backend");
|
|
5
5
|
const proto = require("../../gcp/proto");
|
|
6
6
|
const api = require("../../.../../api");
|
|
@@ -8,6 +8,7 @@ const params = require("./params");
|
|
|
8
8
|
const previews_1 = require("../../previews");
|
|
9
9
|
const error_1 = require("../../error");
|
|
10
10
|
const functional_1 = require("../../functional");
|
|
11
|
+
const env_1 = require("../../functions/env");
|
|
11
12
|
const logger_1 = require("../../logger");
|
|
12
13
|
function empty() {
|
|
13
14
|
return {
|
|
@@ -23,15 +24,79 @@ function of(endpoints) {
|
|
|
23
24
|
return build;
|
|
24
25
|
}
|
|
25
26
|
exports.of = of;
|
|
27
|
+
function isHttpsTriggered(triggered) {
|
|
28
|
+
return {}.hasOwnProperty.call(triggered, "httpsTrigger");
|
|
29
|
+
}
|
|
30
|
+
exports.isHttpsTriggered = isHttpsTriggered;
|
|
31
|
+
function isCallableTriggered(triggered) {
|
|
32
|
+
return {}.hasOwnProperty.call(triggered, "callableTrigger");
|
|
33
|
+
}
|
|
34
|
+
exports.isCallableTriggered = isCallableTriggered;
|
|
35
|
+
function isEventTriggered(triggered) {
|
|
36
|
+
return {}.hasOwnProperty.call(triggered, "eventTrigger");
|
|
37
|
+
}
|
|
38
|
+
exports.isEventTriggered = isEventTriggered;
|
|
39
|
+
function isScheduleTriggered(triggered) {
|
|
40
|
+
return {}.hasOwnProperty.call(triggered, "scheduleTrigger");
|
|
41
|
+
}
|
|
42
|
+
exports.isScheduleTriggered = isScheduleTriggered;
|
|
43
|
+
function isTaskQueueTriggered(triggered) {
|
|
44
|
+
return {}.hasOwnProperty.call(triggered, "taskQueueTrigger");
|
|
45
|
+
}
|
|
46
|
+
exports.isTaskQueueTriggered = isTaskQueueTriggered;
|
|
47
|
+
function isBlockingTriggered(triggered) {
|
|
48
|
+
return {}.hasOwnProperty.call(triggered, "blockingTrigger");
|
|
49
|
+
}
|
|
50
|
+
exports.isBlockingTriggered = isBlockingTriggered;
|
|
51
|
+
const allMemoryOptions = [128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768];
|
|
52
|
+
function isValidMemoryOption(mem) {
|
|
53
|
+
return allMemoryOptions.includes(mem);
|
|
54
|
+
}
|
|
55
|
+
exports.isValidMemoryOption = isValidMemoryOption;
|
|
56
|
+
exports.AllFunctionsPlatforms = ["gcfv1", "gcfv2"];
|
|
57
|
+
exports.AllVpcEgressSettings = ["PRIVATE_RANGES_ONLY", "ALL_TRAFFIC"];
|
|
58
|
+
exports.AllIngressSettings = [
|
|
59
|
+
"ALLOW_ALL",
|
|
60
|
+
"ALLOW_INTERNAL_ONLY",
|
|
61
|
+
"ALLOW_INTERNAL_AND_GCLB",
|
|
62
|
+
];
|
|
26
63
|
async function resolveBackend(build, userEnvOpt, userEnvs) {
|
|
64
|
+
var _a;
|
|
27
65
|
const projectId = userEnvOpt.projectId;
|
|
28
66
|
let paramValues = {};
|
|
29
67
|
if (previews_1.previews.functionsparams) {
|
|
30
|
-
paramValues = await params.resolveParams(build.params, projectId, userEnvs);
|
|
68
|
+
paramValues = await params.resolveParams(build.params, projectId, envWithTypes(userEnvs));
|
|
69
|
+
const toWrite = {};
|
|
70
|
+
for (const paramName of Object.keys(paramValues)) {
|
|
71
|
+
if (userEnvs.hasOwnProperty(paramName)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
toWrite[paramName] = ((_a = paramValues[paramName]) === null || _a === void 0 ? void 0 : _a.toString()) || "";
|
|
75
|
+
}
|
|
76
|
+
(0, env_1.writeUserEnvs)(toWrite, userEnvOpt);
|
|
31
77
|
}
|
|
32
78
|
return toBackend(build, paramValues);
|
|
33
79
|
}
|
|
34
80
|
exports.resolveBackend = resolveBackend;
|
|
81
|
+
function envWithTypes(rawEnvs) {
|
|
82
|
+
const out = {};
|
|
83
|
+
for (const envName of Object.keys(rawEnvs)) {
|
|
84
|
+
const value = rawEnvs[envName];
|
|
85
|
+
if (!isNaN(+value) && isFinite(+value) && !value.includes("e")) {
|
|
86
|
+
out[envName] = +value;
|
|
87
|
+
}
|
|
88
|
+
else if (value === "true") {
|
|
89
|
+
out[envName] = true;
|
|
90
|
+
}
|
|
91
|
+
else if (value === "false") {
|
|
92
|
+
out[envName] = false;
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
out[envName] = value;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
35
100
|
class Resolver {
|
|
36
101
|
constructor(paramValues) {
|
|
37
102
|
this.paramValues = paramValues;
|
|
@@ -109,6 +174,9 @@ function toBackend(build, paramValues) {
|
|
|
109
174
|
r.resolveInts(bkEndpoint, bdEndpoint, "timeoutSeconds", "maxInstances", "minInstances", "concurrency");
|
|
110
175
|
proto.convertIfPresent(bkEndpoint, bdEndpoint, "cpu", (0, functional_1.nullsafeVisitor)((cpu) => (cpu === "gcf_gen1" ? cpu : r.resolveInt(cpu))));
|
|
111
176
|
if (bdEndpoint.vpc) {
|
|
177
|
+
if (bdEndpoint.vpc.connector && !bdEndpoint.vpc.connector.includes("/")) {
|
|
178
|
+
bdEndpoint.vpc.connector = `projects/${bdEndpoint.project}/locations/${region}/connectors/${bdEndpoint.vpc.connector}`;
|
|
179
|
+
}
|
|
112
180
|
bkEndpoint.vpc = { connector: params.resolveString(bdEndpoint.vpc.connector, paramValues) };
|
|
113
181
|
proto.copyIfPresent(bkEndpoint.vpc, bdEndpoint.vpc, "egressSettings");
|
|
114
182
|
}
|
|
@@ -124,7 +192,7 @@ function toBackend(build, paramValues) {
|
|
|
124
192
|
}
|
|
125
193
|
exports.toBackend = toBackend;
|
|
126
194
|
function discoverTrigger(endpoint, region, r) {
|
|
127
|
-
if (
|
|
195
|
+
if (isHttpsTriggered(endpoint)) {
|
|
128
196
|
const httpsTrigger = {};
|
|
129
197
|
if (endpoint.httpsTrigger.invoker === null) {
|
|
130
198
|
httpsTrigger.invoker = null;
|
|
@@ -134,13 +202,13 @@ function discoverTrigger(endpoint, region, r) {
|
|
|
134
202
|
}
|
|
135
203
|
return { httpsTrigger };
|
|
136
204
|
}
|
|
137
|
-
else if (
|
|
205
|
+
else if (isCallableTriggered(endpoint)) {
|
|
138
206
|
return { callableTrigger: {} };
|
|
139
207
|
}
|
|
140
|
-
else if (
|
|
208
|
+
else if (isBlockingTriggered(endpoint)) {
|
|
141
209
|
return { blockingTrigger: endpoint.blockingTrigger };
|
|
142
210
|
}
|
|
143
|
-
else if (
|
|
211
|
+
else if (isEventTriggered(endpoint)) {
|
|
144
212
|
const eventTrigger = {
|
|
145
213
|
eventType: endpoint.eventTrigger.eventType,
|
|
146
214
|
retry: r.resolveBoolean(endpoint.eventTrigger.retry) || false,
|
|
@@ -154,11 +222,13 @@ function discoverTrigger(endpoint, region, r) {
|
|
|
154
222
|
r.resolveStrings(eventTrigger, endpoint.eventTrigger, "serviceAccount", "region", "channel");
|
|
155
223
|
return { eventTrigger };
|
|
156
224
|
}
|
|
157
|
-
else if (
|
|
225
|
+
else if (isScheduleTriggered(endpoint)) {
|
|
158
226
|
const bkSchedule = {
|
|
159
227
|
schedule: r.resolveString(endpoint.scheduleTrigger.schedule),
|
|
160
|
-
timeZone: r.resolveString(endpoint.scheduleTrigger.timeZone),
|
|
161
228
|
};
|
|
229
|
+
if (endpoint.scheduleTrigger.timeZone !== undefined) {
|
|
230
|
+
bkSchedule.timeZone = r.resolveString(endpoint.scheduleTrigger.timeZone);
|
|
231
|
+
}
|
|
162
232
|
if (endpoint.scheduleTrigger.retryConfig) {
|
|
163
233
|
const bkRetry = {};
|
|
164
234
|
r.resolveInts(bkRetry, endpoint.scheduleTrigger.retryConfig, "maxBackoffSeconds", "minBackoffSeconds", "maxRetrySeconds", "retryCount", "maxDoublings");
|