npm package diff
Package: @forge/egress
Versions: 1.2.13 - 1.3.0-next.0
File: package/out/egress/utils.js
Index: package/out/egress/utils.js
===================================================================
--- package/out/egress/utils.js
+++ package/out/egress/utils.js
@@ -1,11 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.sortAndGroupEgressPermissionsByDomain = void 0;
+exports.getEgressesBasedOnToggles = exports.sortAndGroupEgressPermissionsByDomain = exports.EgressCategory = exports.EgressType = void 0;
const minimatch_1 = require("minimatch");
const url_parser_1 = require("./url-parser");
const sortAndGroupEgressPermissionsByDomain = (egressAddresses) => {
- if ((egressAddresses === null || egressAddresses === void 0 ? void 0 : egressAddresses.length) === 0) {
+ if (egressAddresses?.length === 0) {
return [];
}
const protocolRegex = /^(.*?:\/\/)/;
const domains = new Set();
@@ -28,4 +28,40 @@
return grouped;
}, []);
};
exports.sortAndGroupEgressPermissionsByDomain = sortAndGroupEgressPermissionsByDomain;
+var EgressType;
+(function (EgressType) {
+ EgressType["FetchBackendSide"] = "FETCH_BACKEND_SIDE";
+ EgressType["FetchClientSide"] = "FETCH_CLIENT_SIDE";
+ EgressType["Fonts"] = "FONTS";
+ EgressType["Frames"] = "FRAMES";
+ EgressType["Images"] = "IMAGES";
+ EgressType["Media"] = "MEDIA";
+ EgressType["Navigation"] = "NAVIGATION";
+ EgressType["Scripts"] = "SCRIPTS";
+ EgressType["Styles"] = "STYLES";
+})(EgressType = exports.EgressType || (exports.EgressType = {}));
+var EgressCategory;
+(function (EgressCategory) {
+ EgressCategory["ANALYTICS"] = "analytics";
+})(EgressCategory = exports.EgressCategory || (exports.EgressCategory = {}));
+const getEgressesBasedOnToggles = (input) => {
+ const filteredEgresses = input.egress.filter((egress) => {
+ if (egress.category === EgressCategory.ANALYTICS) {
+ return input.overrides.ALLOW_EGRESS_ANALYTICS !== false;
+ }
+ return true;
+ });
+ const egressByType = new Map();
+ for (const egress of filteredEgresses) {
+ if (!egressByType.has(egress.type)) {
+ egressByType.set(egress.type, egress.addresses);
+ }
+ egressByType.set(egress.type, [...egressByType.get(egress.type), ...egress.addresses]);
+ }
+ return [...egressByType.entries()].map(([type, egresses]) => ({
+ type,
+ addresses: [...new Set(egresses)]
+ }));
+};
+exports.getEgressesBasedOnToggles = getEgressesBasedOnToggles;