firebase-tools 10.2.2 → 10.3.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/commands/ext-configure.js +58 -4
- package/lib/commands/ext-export.js +4 -9
- package/lib/commands/ext-install.js +63 -4
- package/lib/commands/ext-uninstall.js +9 -0
- package/lib/commands/ext-update.js +55 -2
- package/lib/config.js +6 -3
- package/lib/deploy/extensions/planner.js +6 -6
- package/lib/deploy/functions/backend.js +10 -1
- package/lib/deploy/functions/checkIam.js +4 -4
- package/lib/deploy/functions/prepare.js +2 -1
- package/lib/deploy/functions/release/fabricator.js +4 -4
- package/lib/deploy/functions/release/planner.js +34 -20
- package/lib/deploy/functions/runtimes/discovery/v1alpha1.js +6 -1
- package/lib/deploy/functions/runtimes/node/index.js +27 -0
- package/lib/deploy/functions/runtimes/node/parseTriggers.js +24 -8
- package/lib/deploy/functions/services/firebaseAlerts.js +30 -0
- package/lib/deploy/functions/services/index.js +9 -1
- package/lib/deploy/functions/services/storage.js +10 -4
- package/lib/deploy/functions/triggerRegionHelper.js +1 -1
- package/lib/emulator/constants.js +1 -0
- package/lib/emulator/controller.js +9 -7
- package/lib/emulator/extensions/validation.js +37 -2
- package/lib/emulator/extensionsEmulator.js +44 -9
- package/lib/emulator/functionsEmulator.js +13 -8
- package/lib/emulator/functionsEmulatorShared.js +17 -10
- package/lib/emulator/storage/apis/firebase.js +312 -335
- package/lib/emulator/storage/apis/gcloud.js +238 -113
- package/lib/emulator/storage/crc.js +5 -1
- package/lib/emulator/storage/errors.js +9 -0
- package/lib/emulator/storage/files.js +161 -304
- package/lib/emulator/storage/index.js +27 -73
- package/lib/emulator/storage/metadata.js +63 -49
- package/lib/emulator/storage/multipart.js +62 -0
- package/lib/emulator/storage/persistence.js +78 -0
- package/lib/emulator/storage/rules/config.js +33 -0
- package/lib/emulator/storage/rules/manager.js +81 -0
- package/lib/emulator/storage/rules/utils.js +48 -0
- package/lib/emulator/storage/server.js +2 -2
- package/lib/emulator/storage/upload.js +106 -0
- package/lib/extensions/emulator/optionsHelper.js +35 -3
- package/lib/extensions/extensionsHelper.js +19 -10
- package/lib/extensions/manifest.js +109 -13
- package/lib/extensions/paramHelper.js +5 -4
- package/lib/functions/env.js +4 -6
- package/lib/functions/events/v2.js +11 -0
- package/lib/gcp/cloudfunctions.js +18 -6
- package/lib/gcp/cloudfunctionsv2.js +30 -12
- package/lib/gcp/resourceManager.js +4 -4
- package/lib/serve/functions.js +2 -1
- package/lib/utils.js +14 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/lib/deploy/extensions/params.js +0 -42
- package/lib/deploy/functions/eventTypes.js +0 -10
|
@@ -5,9 +5,10 @@ const _ = require("lodash");
|
|
|
5
5
|
const os = require("os");
|
|
6
6
|
const path = require("path");
|
|
7
7
|
const fs = require("fs");
|
|
8
|
+
const backend = require("../deploy/functions/backend");
|
|
8
9
|
const constants_1 = require("./constants");
|
|
9
|
-
const backend_1 = require("../deploy/functions/backend");
|
|
10
10
|
const proto_1 = require("../gcp/proto");
|
|
11
|
+
const logger_1 = require("../logger");
|
|
11
12
|
const memoryLookup = {
|
|
12
13
|
"128MB": 128,
|
|
13
14
|
"256MB": 256,
|
|
@@ -60,30 +61,35 @@ function emulatedFunctionsFromEndpoints(endpoints) {
|
|
|
60
61
|
id: `${endpoint.region}-${endpoint.id}`,
|
|
61
62
|
};
|
|
62
63
|
(0, proto_1.copyIfPresent)(def, endpoint, "timeout", "availableMemoryMb", "labels", "platform", "secretEnvironmentVariables");
|
|
63
|
-
if (
|
|
64
|
+
if (backend.isHttpsTriggered(endpoint)) {
|
|
64
65
|
def.httpsTrigger = endpoint.httpsTrigger;
|
|
65
66
|
}
|
|
66
|
-
else if (
|
|
67
|
+
else if (backend.isEventTriggered(endpoint)) {
|
|
67
68
|
const eventTrigger = endpoint.eventTrigger;
|
|
68
69
|
if (endpoint.platform === "gcfv1") {
|
|
70
|
+
const resourceFilter = backend.findEventFilter(endpoint, "resource");
|
|
71
|
+
if (!resourceFilter) {
|
|
72
|
+
logger_1.logger.debug(`Invalid event trigger ${JSON.stringify(endpoint)}, expected event filter with resource attribute. Skipping.`);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
69
75
|
def.eventTrigger = {
|
|
70
76
|
eventType: eventTrigger.eventType,
|
|
71
|
-
resource:
|
|
77
|
+
resource: resourceFilter.value,
|
|
72
78
|
};
|
|
73
79
|
}
|
|
74
80
|
else {
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
81
|
+
const [eventFilter] = endpoint.eventTrigger.eventFilters;
|
|
82
|
+
if (!eventFilter) {
|
|
83
|
+
logger_1.logger.debug(`Invalid event trigger ${JSON.stringify(endpoint)}, expected at least one event filter. Skipping.`);
|
|
78
84
|
continue;
|
|
79
85
|
}
|
|
80
86
|
def.eventTrigger = {
|
|
81
87
|
eventType: eventTrigger.eventType,
|
|
82
|
-
resource:
|
|
88
|
+
resource: eventFilter.value,
|
|
83
89
|
};
|
|
84
90
|
}
|
|
85
91
|
}
|
|
86
|
-
else if (
|
|
92
|
+
else if (backend.isScheduleTriggered(endpoint)) {
|
|
87
93
|
def.eventTrigger = { eventType: "pubsub", resource: "" };
|
|
88
94
|
def.schedule = endpoint.scheduleTrigger;
|
|
89
95
|
}
|
|
@@ -94,7 +100,7 @@ function emulatedFunctionsFromEndpoints(endpoints) {
|
|
|
94
100
|
return regionDefinitions;
|
|
95
101
|
}
|
|
96
102
|
exports.emulatedFunctionsFromEndpoints = emulatedFunctionsFromEndpoints;
|
|
97
|
-
function emulatedFunctionsByRegion(definitions) {
|
|
103
|
+
function emulatedFunctionsByRegion(definitions, secretEnvVariables = []) {
|
|
98
104
|
const regionDefinitions = [];
|
|
99
105
|
for (const def of definitions) {
|
|
100
106
|
if (!def.regions) {
|
|
@@ -106,6 +112,7 @@ function emulatedFunctionsByRegion(definitions) {
|
|
|
106
112
|
defDeepCopy.region = region;
|
|
107
113
|
defDeepCopy.id = `${region}-${defDeepCopy.name}`;
|
|
108
114
|
defDeepCopy.platform = defDeepCopy.platform || "gcfv1";
|
|
115
|
+
defDeepCopy.secretEnvironmentVariables = secretEnvVariables;
|
|
109
116
|
regionDefinitions.push(defDeepCopy);
|
|
110
117
|
}
|
|
111
118
|
}
|