@forge/lint 5.9.1-next.11 → 5.9.1-next.2

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/CHANGELOG.md CHANGED
@@ -1,82 +1,5 @@
1
1
  # @forge/lint
2
2
 
3
- ## 5.9.1-next.11
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [effab31]
8
- - Updated dependencies [609f68b]
9
- - @forge/cli-shared@8.1.0-next.9
10
- - @forge/manifest@10.1.0-next.9
11
- - @forge/csp@4.1.0-next.2
12
-
13
- ## 5.9.1-next.10
14
-
15
- ### Patch Changes
16
-
17
- - Updated dependencies [46daa27]
18
- - @forge/manifest@10.1.0-next.8
19
- - @forge/cli-shared@8.1.0-next.8
20
-
21
- ## 5.9.1-next.9
22
-
23
- ### Patch Changes
24
-
25
- - c3810aa: Fix linter not triggering auto-fix for some cases of deprecated egress permissions
26
-
27
- ## 5.9.1-next.8
28
-
29
- ### Patch Changes
30
-
31
- - Updated dependencies [634d7b9]
32
- - Updated dependencies [620aea7]
33
- - @forge/manifest@10.0.1-next.7
34
- - @forge/cli-shared@8.1.0-next.7
35
-
36
- ## 5.9.1-next.7
37
-
38
- ### Patch Changes
39
-
40
- - 5d07fbf: Update the default value for inScopeEUD of egress entries by the linter
41
- - Updated dependencies [5d07fbf]
42
- - @forge/manifest@10.0.1-next.6
43
- - @forge/cli-shared@8.0.1-next.6
44
-
45
- ## 5.9.1-next.6
46
-
47
- ### Patch Changes
48
-
49
- - Updated dependencies [f5ba3aa]
50
- - @forge/csp@4.0.1-next.1
51
-
52
- ## 5.9.1-next.5
53
-
54
- ### Patch Changes
55
-
56
- - Updated dependencies [d97a252]
57
- - Updated dependencies [ca7e661]
58
- - @forge/manifest@10.0.1-next.5
59
- - @forge/cli-shared@8.0.1-next.5
60
-
61
- ## 5.9.1-next.4
62
-
63
- ### Patch Changes
64
-
65
- - 195411c: patch dependencies
66
- - Updated dependencies [195411c]
67
- - @forge/cli-shared@8.0.1-next.4
68
- - @forge/manifest@10.0.1-next.4
69
- - @forge/egress@2.0.1-next.0
70
- - @forge/csp@4.0.1-next.0
71
-
72
- ## 5.9.1-next.3
73
-
74
- ### Patch Changes
75
-
76
- - Updated dependencies [1479d2d]
77
- - @forge/manifest@10.0.1-next.3
78
- - @forge/cli-shared@8.0.1-next.3
79
-
80
3
  ## 5.9.1-next.2
81
4
 
82
5
  ### Patch Changes
@@ -10,7 +10,6 @@ interface SwaggerFormat {
10
10
  }
11
11
  export declare const NON_FWD_SLASH_REGEX = "[^\\/\\s]*";
12
12
  export declare const findMissingPermissions: (errors: LintResultRule[], warnings: LintResultRule[], permissionsType: 'missingPermission' | 'missingExternalFetchPermission' | 'missingContentStylePermission' | 'missingExternalImagesPermission', state?: LintFixState) => Set<string>;
13
- export declare const deprecatedEgressPermissions: (warnings: LintResultRule[], state?: LintFixState) => boolean;
14
13
  export declare const fixMissingPermissions: (errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>;
15
14
  interface PermissionLintCriteriaMatches {
16
15
  [key: string]: ApiCall[];
@@ -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,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"}
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,CAyGtB,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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PermissionLinter = exports.fixMissingPermissions = exports.deprecatedEgressPermissions = exports.findMissingPermissions = exports.NON_FWD_SLASH_REGEX = void 0;
3
+ exports.PermissionLinter = exports.fixMissingPermissions = exports.findMissingPermissions = exports.NON_FWD_SLASH_REGEX = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const cli_shared_1 = require("@forge/cli-shared");
6
6
  const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
@@ -32,50 +32,12 @@ const findMissingPermissions = (errors, warnings, permissionsType, state) => {
32
32
  return missingPermissions;
33
33
  };
34
34
  exports.findMissingPermissions = findMissingPermissions;
35
- const deprecatedEgressPermissions = (warnings, state) => {
36
- const hasDeprecated = warnings.some((warning) => warning.metadata?.hasDeprecatedEgressPermissions);
37
- if (hasDeprecated && state)
38
- state.warningsFixed++;
39
- return hasDeprecated;
40
- };
41
- exports.deprecatedEgressPermissions = deprecatedEgressPermissions;
42
- const applyEgressPermissionsMigration = (config) => {
43
- const { fetch: originalFetch, ...restExternal } = config.external ?? {};
44
- Object.entries(originalFetch || {}).forEach(([key, values]) => {
45
- const valuesToOverride = [];
46
- values.forEach((egressValue) => {
47
- if (typeof egressValue === 'string') {
48
- valuesToOverride.push({
49
- address: egressValue
50
- });
51
- }
52
- else {
53
- valuesToOverride.push(egressValue);
54
- }
55
- config.external.fetch[key] = valuesToOverride;
56
- });
57
- });
58
- Object.entries(restExternal || {}).forEach(([key, values]) => {
59
- const valuesToOverride = [];
60
- values.forEach((egressValue) => {
61
- if (typeof egressValue === 'string') {
62
- valuesToOverride.push({
63
- address: egressValue
64
- });
65
- }
66
- else {
67
- valuesToOverride.push(egressValue);
68
- }
69
- config.external[key] = valuesToOverride;
70
- });
71
- });
72
- };
73
35
  const fixMissingPermissions = async (errors, warnings, state) => {
74
36
  const missingScopes = (0, exports.findMissingPermissions)(errors, warnings, 'missingPermission', state);
75
37
  const missingExternalFetchBackend = (0, exports.findMissingPermissions)(errors, warnings, 'missingExternalFetchPermission', state);
76
38
  const missingContentStyle = (0, exports.findMissingPermissions)(errors, warnings, 'missingContentStylePermission', state);
77
39
  const missingExternalImage = (0, exports.findMissingPermissions)(errors, warnings, 'missingExternalImagesPermission', state);
78
- const hasDeprecatedEgressPermissions = (0, exports.deprecatedEgressPermissions)(warnings, state) ||
40
+ const hasDeprecatedEgressPermissions = errors.some((error) => error.metadata?.hasDeprecatedEgressPermissions) ||
79
41
  missingExternalImage.size > 0 ||
80
42
  missingExternalFetchBackend.size > 0;
81
43
  const currentPermissions = (await state.configFile.readConfig())?.permissions ?? {};
@@ -116,7 +78,37 @@ const fixMissingPermissions = async (errors, warnings, state) => {
116
78
  };
117
79
  }
118
80
  if (hasDeprecatedEgressPermissions) {
119
- applyEgressPermissionsMigration(config);
81
+ const { fetch: originalFetch, ...restExternal } = config.external ?? {};
82
+ Object.entries(originalFetch || {}).forEach(([key, values]) => {
83
+ const valuesToOverride = [];
84
+ values.forEach((egressValue) => {
85
+ if (typeof egressValue === 'string') {
86
+ valuesToOverride.push({
87
+ address: egressValue,
88
+ inScopeEUD: false
89
+ });
90
+ }
91
+ else {
92
+ valuesToOverride.push(egressValue);
93
+ }
94
+ config.external.fetch[key] = valuesToOverride;
95
+ });
96
+ });
97
+ Object.entries(restExternal || {}).forEach(([key, values]) => {
98
+ const valuesToOverride = [];
99
+ values.forEach((egressValue) => {
100
+ if (typeof egressValue === 'string') {
101
+ valuesToOverride.push({
102
+ address: egressValue,
103
+ inScopeEUD: false
104
+ });
105
+ }
106
+ else {
107
+ valuesToOverride.push(egressValue);
108
+ }
109
+ config.external[key] = valuesToOverride;
110
+ });
111
+ });
120
112
  }
121
113
  await state.configFile.writeToConfigFile('permissions', config);
122
114
  return state;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/lint",
3
- "version": "5.9.1-next.11",
3
+ "version": "5.9.1-next.2",
4
4
  "description": "Linting for forge apps",
5
5
  "main": "out/index.js",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -11,25 +11,25 @@
11
11
  },
12
12
  "devDependencies": {
13
13
  "@atlassian/xen-test-util": "^4.2.0",
14
- "@forge/api": "^6.0.1-next.0",
14
+ "@forge/api": "^6.0.0",
15
15
  "@types/array.prototype.flatmap": "^1.2.6",
16
16
  "@types/cross-spawn": "^6.0.6",
17
- "@types/eslint": "8.56.12",
18
- "@types/node-fetch": "^2.6.12",
17
+ "@types/eslint": "8.56.2",
18
+ "@types/node-fetch": "^2.6.11",
19
19
  "eslint-plugin-import": "^2.29.1"
20
20
  },
21
21
  "dependencies": {
22
- "@forge/cli-shared": "8.1.0-next.9",
23
- "@forge/csp": "4.1.0-next.2",
24
- "@forge/egress": "2.0.1-next.0",
25
- "@forge/manifest": "10.1.0-next.9",
22
+ "@forge/cli-shared": "8.0.1-next.2",
23
+ "@forge/csp": "4.0.0",
24
+ "@forge/egress": "2.0.0",
25
+ "@forge/manifest": "10.0.1-next.2",
26
26
  "@typescript-eslint/typescript-estree": "^5.62.0",
27
- "array.prototype.flatmap": "^1.3.3",
28
- "atlassian-openapi": "^1.0.21",
29
- "cross-spawn": "^7.0.6",
27
+ "array.prototype.flatmap": "^1.3.2",
28
+ "atlassian-openapi": "^1.0.18",
29
+ "cross-spawn": "^7.0.5",
30
30
  "node-fetch": "2.7.0"
31
31
  },
32
32
  "publishConfig": {
33
33
  "registry": "https://packages.atlassian.com/api/npm/npm-public/"
34
34
  }
35
- }
35
+ }