npm package diff
Package: @forge/lint
Versions: 5.9.1-next.8 - 5.9.1-next.9
File: package/out/lint/linters/permission-linter/permission-linter.js
Index: package/out/lint/linters/permission-linter/permission-linter.js
===================================================================
--- package/out/lint/linters/permission-linter/permission-linter.js
+++ package/out/lint/linters/permission-linter/permission-linter.js
@@ -1,7 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.PermissionLinter = exports.fixMissingPermissions = exports.findMissingPermissions = exports.NON_FWD_SLASH_REGEX = void 0;
+exports.PermissionLinter = exports.fixMissingPermissions = exports.deprecatedEgressPermissions = exports.findMissingPermissions = exports.NON_FWD_SLASH_REGEX = void 0;
const tslib_1 = require("tslib");
const cli_shared_1 = require("@forge/cli-shared");
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
const base_linter_1 = tslib_1.__importDefault(require("../../base-linter"));
@@ -31,14 +31,52 @@
});
return missingPermissions;
};
exports.findMissingPermissions = findMissingPermissions;
+const deprecatedEgressPermissions = (warnings, state) => {
+ const hasDeprecated = warnings.some((warning) => warning.metadata?.hasDeprecatedEgressPermissions);
+ if (hasDeprecated && state)
+ state.warningsFixed++;
+ return hasDeprecated;
+};
+exports.deprecatedEgressPermissions = deprecatedEgressPermissions;
+const applyEgressPermissionsMigration = (config) => {
+ const { fetch: originalFetch, ...restExternal } = config.external ?? {};
+ Object.entries(originalFetch || {}).forEach(([key, values]) => {
+ const valuesToOverride = [];
+ values.forEach((egressValue) => {
+ if (typeof egressValue === 'string') {
+ valuesToOverride.push({
+ address: egressValue
+ });
+ }
+ else {
+ valuesToOverride.push(egressValue);
+ }
+ config.external.fetch[key] = valuesToOverride;
+ });
+ });
+ Object.entries(restExternal || {}).forEach(([key, values]) => {
+ const valuesToOverride = [];
+ values.forEach((egressValue) => {
+ if (typeof egressValue === 'string') {
+ valuesToOverride.push({
+ address: egressValue
+ });
+ }
+ else {
+ valuesToOverride.push(egressValue);
+ }
+ config.external[key] = valuesToOverride;
+ });
+ });
+};
const fixMissingPermissions = async (errors, warnings, state) => {
const missingScopes = (0, exports.findMissingPermissions)(errors, warnings, 'missingPermission', state);
const missingExternalFetchBackend = (0, exports.findMissingPermissions)(errors, warnings, 'missingExternalFetchPermission', state);
const missingContentStyle = (0, exports.findMissingPermissions)(errors, warnings, 'missingContentStylePermission', state);
const missingExternalImage = (0, exports.findMissingPermissions)(errors, warnings, 'missingExternalImagesPermission', state);
- const hasDeprecatedEgressPermissions = errors.some((error) => error.metadata?.hasDeprecatedEgressPermissions) ||
+ const hasDeprecatedEgressPermissions = (0, exports.deprecatedEgressPermissions)(warnings, state) ||
missingExternalImage.size > 0 ||
missingExternalFetchBackend.size > 0;
const currentPermissions = (await state.configFile.readConfig())?.permissions ?? {};
const currentScopes = (0, utils_1.getAllScopeKeys)(currentPermissions?.scopes ?? []);
@@ -77,37 +115,9 @@
styles: arrayMissingContentStyles
};
}
if (hasDeprecatedEgressPermissions) {
- const { fetch: originalFetch, ...restExternal } = config.external ?? {};
- Object.entries(originalFetch || {}).forEach(([key, values]) => {
- const valuesToOverride = [];
- values.forEach((egressValue) => {
- if (typeof egressValue === 'string') {
- valuesToOverride.push({
- address: egressValue
- });
- }
- else {
- valuesToOverride.push(egressValue);
- }
- config.external.fetch[key] = valuesToOverride;
- });
- });
- Object.entries(restExternal || {}).forEach(([key, values]) => {
- const valuesToOverride = [];
- values.forEach((egressValue) => {
- if (typeof egressValue === 'string') {
- valuesToOverride.push({
- address: egressValue
- });
- }
- else {
- valuesToOverride.push(egressValue);
- }
- config.external[key] = valuesToOverride;
- });
- });
+ applyEgressPermissionsMigration(config);
}
await state.configFile.writeToConfigFile('permissions', config);
return state;
};