npm package diff

Package: @forge/lint

Versions: 5.9.1-next.8 - 5.9.1-next.9

Modified: 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;
 };

Modified: package/package.json

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/lint",
-  "version": "5.9.1-next.8",
+  "version": "5.9.1-next.9",
   "description": "Linting for forge apps",
   "main": "out/index.js",
   "license": "SEE LICENSE IN LICENSE.txt",
   "scripts": {

Modified: package/out/lint/linters/permission-linter/permission-linter.d.ts.map

Index: package/out/lint/linters/permission-linter/permission-linter.d.ts.map
===================================================================
--- package/out/lint/linters/permission-linter/permission-linter.d.ts.map
+++ package/out/lint/linters/permission-linter/permission-linter.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"permission-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/permission-linter/permission-linter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,IAAI,QAAQ,EAAe,MAAM,iBAAiB,CAAC;AAE/E,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EACL,OAAO,EAEP,eAAe,EACf,QAAQ,EACR,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAML,WAAW,EAGZ,MAAM,aAAa,CAAC;AAYrB,UAAU,aAAa;IACrB,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAKhD,eAAO,MAAM,sBAAsB,WACzB,cAAc,EAAE,YACd,cAAc,EAAE,mBAEtB,mBAAmB,GACnB,gCAAgC,GAChC,+BAA+B,GAC/B,iCAAiC,UAC7B,YAAY,KACnB,IAAI,MAAM,CAkBZ,CAAC;AAEF,eAAO,MAAM,qBAAqB,WACxB,cAAc,EAAE,YACd,cAAc,EAAE,SACnB,YAAY,KAClB,QAAQ,YAAY,CAuGtB,CAAC;AAEF,UAAU,6BAA6B;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,OAAO,EAAE,6BAA6B,EAAE,OAAO,EAAE,CAAC;IAe/F,OAAO,CAAC,QAAQ;IAdlB,MAAM,CAAC,cAAc,SAAgC;IACrD,MAAM,CAAC,aAAa,SAA+B;IACnD,MAAM,CAAC,aAAa,SAA+B;IACnD,MAAM,CAAC,oBAAoB,SAAsC;IACjE,MAAM,CAAC,uBAAuB,SAAyC;IACvE,MAAM,CAAC,mBAAmB,SAAqC;IAE/D,OAAO,CAAC,IAAI,CAAC,CAA0B;IACvC,OAAO,CAAC,UAAU,CAAC,CAA0B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAAC,CAAa;gBAGzB,WAAW,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAC1B,MAAM,EAAE,UAAU;IAKP,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA2FvC,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcjD,SAAS,CAAC,QAAQ,IACd,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GACtG,SAAS;IAIb,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAsB3D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAWtE,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKrE,OAAO,CAAC,YAAY;CAarB"}
\ No newline at end of file
+{"version":3,"file":"permission-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/permission-linter/permission-linter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,IAAI,QAAQ,EAAe,MAAM,iBAAiB,CAAC;AAE/E,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EACL,OAAO,EAEP,eAAe,EACf,QAAQ,EACR,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAML,WAAW,EAGZ,MAAM,aAAa,CAAC;AAYrB,UAAU,aAAa;IACrB,KAAK,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAKhD,eAAO,MAAM,sBAAsB,WACzB,cAAc,EAAE,YACd,cAAc,EAAE,mBAEtB,mBAAmB,GACnB,gCAAgC,GAChC,+BAA+B,GAC/B,iCAAiC,UAC7B,YAAY,KACnB,IAAI,MAAM,CAkBZ,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAAc,cAAc,EAAE,UAAU,YAAY,KAAG,OAI9F,CAAC;AAoCF,eAAO,MAAM,qBAAqB,WACxB,cAAc,EAAE,YACd,cAAc,EAAE,SACnB,YAAY,KAClB,QAAQ,YAAY,CAyEtB,CAAC;AAEF,UAAU,6BAA6B;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,OAAO,EAAE,6BAA6B,EAAE,OAAO,EAAE,CAAC;IAe/F,OAAO,CAAC,QAAQ;IAdlB,MAAM,CAAC,cAAc,SAAgC;IACrD,MAAM,CAAC,aAAa,SAA+B;IACnD,MAAM,CAAC,aAAa,SAA+B;IACnD,MAAM,CAAC,oBAAoB,SAAsC;IACjE,MAAM,CAAC,uBAAuB,SAAyC;IACvE,MAAM,CAAC,mBAAmB,SAAqC;IAE/D,OAAO,CAAC,IAAI,CAAC,CAA0B;IACvC,OAAO,CAAC,UAAU,CAAC,CAA0B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAA0B;IAC5C,OAAO,CAAC,KAAK,CAAC,CAAa;gBAGzB,WAAW,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAC1B,MAAM,EAAE,UAAU;IAKP,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA2FvC,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcjD,SAAS,CAAC,QAAQ,IACd,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GACtG,SAAS;IAIb,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAsB3D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAWtE,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKrE,OAAO,CAAC,YAAY;CAarB"}
\ No newline at end of file

Modified: package/CHANGELOG.md

Large diffs are not rendered by default.

Modified: package/out/lint/linters/permission-linter/permission-linter.d.ts

Index: package/out/lint/linters/permission-linter/permission-linter.d.ts
===================================================================
--- package/out/lint/linters/permission-linter/permission-linter.d.ts
+++ package/out/lint/linters/permission-linter/permission-linter.d.ts
@@ -9,8 +9,9 @@
     };
 }
 export declare const NON_FWD_SLASH_REGEX = "[^\\/\\s]*";
 export declare const findMissingPermissions: (errors: LintResultRule[], warnings: LintResultRule[], permissionsType: 'missingPermission' | 'missingExternalFetchPermission' | 'missingContentStylePermission' | 'missingExternalImagesPermission', state?: LintFixState) => Set<string>;
+export declare const deprecatedEgressPermissions: (warnings: LintResultRule[], state?: LintFixState) => boolean;
 export declare const fixMissingPermissions: (errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>;
 interface PermissionLintCriteriaMatches {
     [key: string]: ApiCall[];
     confluence: ProductApiCall[];