@forge/lint 5.9.0-next.9 → 5.9.1-experimental-b2e5f99
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 +229 -0
- package/out/lint/linters/dynamic-properties-linter/verifiers/dynamic-properties-icon-verifier.d.ts.map +1 -1
- package/out/lint/linters/dynamic-properties-linter/verifiers/dynamic-properties-icon-verifier.js +3 -1
- package/out/lint/linters/permission-linter/permission-linter.d.ts +1 -0
- package/out/lint/linters/permission-linter/permission-linter.d.ts.map +1 -1
- package/out/lint/linters/permission-linter/permission-linter.js +41 -33
- package/out/lint/linters/permission-linter/verifiers/image-url-verifier.d.ts.map +1 -1
- package/out/lint/linters/permission-linter/verifiers/image-url-verifier.js +3 -1
- package/out/lint/linters/permission-linter/verifiers/product-verifier.d.ts +1 -1
- package/out/lint/linters/permission-linter/verifiers/product-verifier.d.ts.map +1 -1
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,234 @@
|
|
|
1
1
|
# @forge/lint
|
|
2
2
|
|
|
3
|
+
## 5.9.1-experimental-b2e5f99
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 05d33ea: Upgraded archiver from 6.0.2 to 7.0.1, moved atlassian-openapi to @atlassian/atlassian-openapi, bumped get-folder-size from 2.0.1 to 5.0.0
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [05d33ea]
|
|
12
|
+
- @forge/cli-shared@8.1.0-experimental-b2e5f99
|
|
13
|
+
- @forge/csp@4.1.0-experimental-b2e5f99
|
|
14
|
+
|
|
15
|
+
## 5.9.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- 5d07fbf: Update the default value for inScopeEUD of egress entries by the linter
|
|
20
|
+
- c3810aa: Fix linter not triggering auto-fix for some cases of deprecated egress permissions
|
|
21
|
+
- 195411c: patch dependencies
|
|
22
|
+
- Updated dependencies [effab31]
|
|
23
|
+
- Updated dependencies [5d07fbf]
|
|
24
|
+
- Updated dependencies [4b15e26]
|
|
25
|
+
- Updated dependencies [634d7b9]
|
|
26
|
+
- Updated dependencies [620aea7]
|
|
27
|
+
- Updated dependencies [25a3da2]
|
|
28
|
+
- Updated dependencies [b9574d4]
|
|
29
|
+
- Updated dependencies [195411c]
|
|
30
|
+
- Updated dependencies [f5ba3aa]
|
|
31
|
+
- Updated dependencies [d97a252]
|
|
32
|
+
- Updated dependencies [46daa27]
|
|
33
|
+
- Updated dependencies [1479d2d]
|
|
34
|
+
- Updated dependencies [ca7e661]
|
|
35
|
+
- Updated dependencies [5ab2c49]
|
|
36
|
+
- Updated dependencies [609f68b]
|
|
37
|
+
- @forge/cli-shared@8.1.0
|
|
38
|
+
- @forge/manifest@10.1.0
|
|
39
|
+
- @forge/csp@4.1.0
|
|
40
|
+
- @forge/egress@2.0.1
|
|
41
|
+
|
|
42
|
+
## 5.9.1-next.11
|
|
43
|
+
|
|
44
|
+
### Patch Changes
|
|
45
|
+
|
|
46
|
+
- Updated dependencies [effab31]
|
|
47
|
+
- Updated dependencies [609f68b]
|
|
48
|
+
- @forge/cli-shared@8.1.0-next.9
|
|
49
|
+
- @forge/manifest@10.1.0-next.9
|
|
50
|
+
- @forge/csp@4.1.0-next.2
|
|
51
|
+
|
|
52
|
+
## 5.9.1-next.10
|
|
53
|
+
|
|
54
|
+
### Patch Changes
|
|
55
|
+
|
|
56
|
+
- Updated dependencies [46daa27]
|
|
57
|
+
- @forge/manifest@10.1.0-next.8
|
|
58
|
+
- @forge/cli-shared@8.1.0-next.8
|
|
59
|
+
|
|
60
|
+
## 5.9.1-next.9
|
|
61
|
+
|
|
62
|
+
### Patch Changes
|
|
63
|
+
|
|
64
|
+
- c3810aa: Fix linter not triggering auto-fix for some cases of deprecated egress permissions
|
|
65
|
+
|
|
66
|
+
## 5.9.1-next.8
|
|
67
|
+
|
|
68
|
+
### Patch Changes
|
|
69
|
+
|
|
70
|
+
- Updated dependencies [634d7b9]
|
|
71
|
+
- Updated dependencies [620aea7]
|
|
72
|
+
- @forge/manifest@10.0.1-next.7
|
|
73
|
+
- @forge/cli-shared@8.1.0-next.7
|
|
74
|
+
|
|
75
|
+
## 5.9.1-next.7
|
|
76
|
+
|
|
77
|
+
### Patch Changes
|
|
78
|
+
|
|
79
|
+
- 5d07fbf: Update the default value for inScopeEUD of egress entries by the linter
|
|
80
|
+
- Updated dependencies [5d07fbf]
|
|
81
|
+
- @forge/manifest@10.0.1-next.6
|
|
82
|
+
- @forge/cli-shared@8.0.1-next.6
|
|
83
|
+
|
|
84
|
+
## 5.9.1-next.6
|
|
85
|
+
|
|
86
|
+
### Patch Changes
|
|
87
|
+
|
|
88
|
+
- Updated dependencies [f5ba3aa]
|
|
89
|
+
- @forge/csp@4.0.1-next.1
|
|
90
|
+
|
|
91
|
+
## 5.9.1-next.5
|
|
92
|
+
|
|
93
|
+
### Patch Changes
|
|
94
|
+
|
|
95
|
+
- Updated dependencies [d97a252]
|
|
96
|
+
- Updated dependencies [ca7e661]
|
|
97
|
+
- @forge/manifest@10.0.1-next.5
|
|
98
|
+
- @forge/cli-shared@8.0.1-next.5
|
|
99
|
+
|
|
100
|
+
## 5.9.1-next.4
|
|
101
|
+
|
|
102
|
+
### Patch Changes
|
|
103
|
+
|
|
104
|
+
- 195411c: patch dependencies
|
|
105
|
+
- Updated dependencies [195411c]
|
|
106
|
+
- @forge/cli-shared@8.0.1-next.4
|
|
107
|
+
- @forge/manifest@10.0.1-next.4
|
|
108
|
+
- @forge/egress@2.0.1-next.0
|
|
109
|
+
- @forge/csp@4.0.1-next.0
|
|
110
|
+
|
|
111
|
+
## 5.9.1-next.3
|
|
112
|
+
|
|
113
|
+
### Patch Changes
|
|
114
|
+
|
|
115
|
+
- Updated dependencies [1479d2d]
|
|
116
|
+
- @forge/manifest@10.0.1-next.3
|
|
117
|
+
- @forge/cli-shared@8.0.1-next.3
|
|
118
|
+
|
|
119
|
+
## 5.9.1-next.2
|
|
120
|
+
|
|
121
|
+
### Patch Changes
|
|
122
|
+
|
|
123
|
+
- Updated dependencies [5ab2c49]
|
|
124
|
+
- @forge/manifest@10.0.1-next.2
|
|
125
|
+
- @forge/cli-shared@8.0.1-next.2
|
|
126
|
+
|
|
127
|
+
## 5.9.1-next.1
|
|
128
|
+
|
|
129
|
+
### Patch Changes
|
|
130
|
+
|
|
131
|
+
- Updated dependencies [b9574d4]
|
|
132
|
+
- @forge/manifest@10.0.1-next.1
|
|
133
|
+
- @forge/cli-shared@8.0.1-next.1
|
|
134
|
+
|
|
135
|
+
## 5.9.1-next.0
|
|
136
|
+
|
|
137
|
+
### Patch Changes
|
|
138
|
+
|
|
139
|
+
- Updated dependencies [4b15e26]
|
|
140
|
+
- Updated dependencies [25a3da2]
|
|
141
|
+
- @forge/manifest@10.0.1-next.0
|
|
142
|
+
- @forge/cli-shared@8.0.1-next.0
|
|
143
|
+
|
|
144
|
+
## 5.9.0
|
|
145
|
+
|
|
146
|
+
### Minor Changes
|
|
147
|
+
|
|
148
|
+
- b44a5b3: Fix the linter to keep the original object for egress permissions and allow to upgrade egress permissions to object
|
|
149
|
+
- 9f050ff: Removed support for Sandbox Runtime and Sanpshots
|
|
150
|
+
- 64befbb: Refactor runtime version manifest check into a linter
|
|
151
|
+
|
|
152
|
+
### Patch Changes
|
|
153
|
+
|
|
154
|
+
- 67bff6d: Fix linter for image egress
|
|
155
|
+
- dd7cad7: Fix deprecated egress manifest linter
|
|
156
|
+
- Updated dependencies [a7bd152]
|
|
157
|
+
- Updated dependencies [73a88f6]
|
|
158
|
+
- Updated dependencies [33c5750]
|
|
159
|
+
- Updated dependencies [e4ab25f]
|
|
160
|
+
- Updated dependencies [0c92352]
|
|
161
|
+
- Updated dependencies [8f2a3c9]
|
|
162
|
+
- Updated dependencies [1992aaf]
|
|
163
|
+
- Updated dependencies [75b7732]
|
|
164
|
+
- Updated dependencies [b44a5b3]
|
|
165
|
+
- Updated dependencies [c3df542]
|
|
166
|
+
- Updated dependencies [9f050ff]
|
|
167
|
+
- Updated dependencies [e6cd96a]
|
|
168
|
+
- Updated dependencies [97255de]
|
|
169
|
+
- Updated dependencies [3d96d1c]
|
|
170
|
+
- Updated dependencies [18eab48]
|
|
171
|
+
- Updated dependencies [be59801]
|
|
172
|
+
- Updated dependencies [8a548ce]
|
|
173
|
+
- Updated dependencies [37eba69]
|
|
174
|
+
- Updated dependencies [c2e09b9]
|
|
175
|
+
- Updated dependencies [ba634d9]
|
|
176
|
+
- Updated dependencies [64befbb]
|
|
177
|
+
- Updated dependencies [d33186c]
|
|
178
|
+
- @forge/manifest@10.0.0
|
|
179
|
+
- @forge/cli-shared@8.0.0
|
|
180
|
+
- @forge/egress@2.0.0
|
|
181
|
+
- @forge/csp@4.0.0
|
|
182
|
+
|
|
183
|
+
## 5.9.0-next.15
|
|
184
|
+
|
|
185
|
+
### Patch Changes
|
|
186
|
+
|
|
187
|
+
- 67bff6d: Fix linter for image egress
|
|
188
|
+
- Updated dependencies [3d96d1c]
|
|
189
|
+
- @forge/manifest@10.0.0-next.13
|
|
190
|
+
- @forge/cli-shared@8.0.0-next.15
|
|
191
|
+
|
|
192
|
+
## 5.9.0-next.14
|
|
193
|
+
|
|
194
|
+
### Patch Changes
|
|
195
|
+
|
|
196
|
+
- Updated dependencies [ba634d9]
|
|
197
|
+
- @forge/cli-shared@8.0.0-next.14
|
|
198
|
+
- @forge/manifest@10.0.0-next.12
|
|
199
|
+
|
|
200
|
+
## 5.9.0-next.13
|
|
201
|
+
|
|
202
|
+
### Patch Changes
|
|
203
|
+
|
|
204
|
+
- Updated dependencies [1992aaf]
|
|
205
|
+
- Updated dependencies [c2e09b9]
|
|
206
|
+
- @forge/manifest@10.0.0-next.11
|
|
207
|
+
- @forge/cli-shared@8.0.0-next.13
|
|
208
|
+
|
|
209
|
+
## 5.9.0-next.12
|
|
210
|
+
|
|
211
|
+
### Patch Changes
|
|
212
|
+
|
|
213
|
+
- Updated dependencies [d33186c]
|
|
214
|
+
- @forge/cli-shared@8.0.0-next.12
|
|
215
|
+
|
|
216
|
+
## 5.9.0-next.11
|
|
217
|
+
|
|
218
|
+
### Patch Changes
|
|
219
|
+
|
|
220
|
+
- Updated dependencies [e6cd96a]
|
|
221
|
+
- @forge/manifest@10.0.0-next.10
|
|
222
|
+
- @forge/cli-shared@8.0.0-next.11
|
|
223
|
+
|
|
224
|
+
## 5.9.0-next.10
|
|
225
|
+
|
|
226
|
+
### Patch Changes
|
|
227
|
+
|
|
228
|
+
- Updated dependencies [33c5750]
|
|
229
|
+
- @forge/manifest@10.0.0-next.9
|
|
230
|
+
- @forge/cli-shared@8.0.0-next.10
|
|
231
|
+
|
|
3
232
|
## 5.9.0-next.9
|
|
4
233
|
|
|
5
234
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-properties-icon-verifier.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/dynamic-properties-linter/verifiers/dynamic-properties-icon-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAE3F,qBAAa,6BACX,SAAQ,iCACR,YAAW,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;IAExD,OAAO,CAAC,sBAAsB,CAAyB;gBAE3C,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"dynamic-properties-icon-verifier.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/dynamic-properties-linter/verifiers/dynamic-properties-icon-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAE3F,qBAAa,6BACX,SAAQ,iCACR,YAAW,iBAAiB,CAAC,wBAAwB,EAAE,CAAC;IAExD,OAAO,CAAC,sBAAsB,CAAyB;gBAE3C,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAWnD,SAAS,CAAC,YAAY,IAAI,SAAS;IAItB,OAAO,CAAC,QAAQ,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAmBtF"}
|
package/out/lint/linters/dynamic-properties-linter/verifiers/dynamic-properties-icon-verifier.js
CHANGED
|
@@ -10,7 +10,9 @@ class DynamicPropertiesIconVerifier extends abstract_dynamic_properties_verifier
|
|
|
10
10
|
egressFilteringService;
|
|
11
11
|
constructor(environment, manifest) {
|
|
12
12
|
super(environment, manifest);
|
|
13
|
-
const allowList = this.manifest?.permissions?.external?.images ?? []
|
|
13
|
+
const allowList = (this.manifest?.permissions?.external?.images ?? [])
|
|
14
|
+
.map((item) => (typeof item === 'object' && 'address' in item ? item.address : item))
|
|
15
|
+
.filter((item) => typeof item === 'string');
|
|
14
16
|
const collectedUrls = allowList.filter((item) => typeof item === 'string');
|
|
15
17
|
this.egressFilteringService = new egress_1.EgressFilteringService(collectedUrls);
|
|
16
18
|
}
|
|
@@ -10,6 +10,7 @@ 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;
|
|
13
14
|
export declare const fixMissingPermissions: (errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>;
|
|
14
15
|
interface PermissionLintCriteriaMatches {
|
|
15
16
|
[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,qBAAqB,WACxB,cAAc,EAAE,YACd,cAAc,EAAE,SACnB,YAAY,KAClB,QAAQ,YAAY,
|
|
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,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PermissionLinter = exports.fixMissingPermissions = exports.findMissingPermissions = exports.NON_FWD_SLASH_REGEX = void 0;
|
|
3
|
+
exports.PermissionLinter = exports.fixMissingPermissions = exports.deprecatedEgressPermissions = 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,12 +32,50 @@ 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
|
+
};
|
|
35
73
|
const fixMissingPermissions = async (errors, warnings, state) => {
|
|
36
74
|
const missingScopes = (0, exports.findMissingPermissions)(errors, warnings, 'missingPermission', state);
|
|
37
75
|
const missingExternalFetchBackend = (0, exports.findMissingPermissions)(errors, warnings, 'missingExternalFetchPermission', state);
|
|
38
76
|
const missingContentStyle = (0, exports.findMissingPermissions)(errors, warnings, 'missingContentStylePermission', state);
|
|
39
77
|
const missingExternalImage = (0, exports.findMissingPermissions)(errors, warnings, 'missingExternalImagesPermission', state);
|
|
40
|
-
const hasDeprecatedEgressPermissions =
|
|
78
|
+
const hasDeprecatedEgressPermissions = (0, exports.deprecatedEgressPermissions)(warnings, state) ||
|
|
41
79
|
missingExternalImage.size > 0 ||
|
|
42
80
|
missingExternalFetchBackend.size > 0;
|
|
43
81
|
const currentPermissions = (await state.configFile.readConfig())?.permissions ?? {};
|
|
@@ -78,37 +116,7 @@ const fixMissingPermissions = async (errors, warnings, state) => {
|
|
|
78
116
|
};
|
|
79
117
|
}
|
|
80
118
|
if (hasDeprecatedEgressPermissions) {
|
|
81
|
-
|
|
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
|
-
});
|
|
119
|
+
applyEgressPermissionsMigration(config);
|
|
112
120
|
}
|
|
113
121
|
await state.configFile.writeToConfigFile('permissions', config);
|
|
114
122
|
return state;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-url-verifier.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/permission-linter/verifiers/image-url-verifier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAiBjD,qBAAa,gBAAiB,SAAQ,qBAAsB,YAAW,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAClG,OAAO,CAAC,sBAAsB,CAAyB;gBAE3C,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"image-url-verifier.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/permission-linter/verifiers/image-url-verifier.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAiBjD,qBAAa,gBAAiB,SAAQ,qBAAsB,YAAW,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAClG,OAAO,CAAC,sBAAsB,CAAyB;gBAE3C,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAkBnD,SAAS,CAAC,YAAY,IAAI,SAAS;IAItB,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAcvE"}
|
|
@@ -28,7 +28,9 @@ class ImageUrlVerifier extends verifier_interface_1.BaseLintIssueVerifier {
|
|
|
28
28
|
constructor(environment, manifest) {
|
|
29
29
|
super(environment, manifest);
|
|
30
30
|
const microsEnv = getMicrosEnvironment((0, cli_shared_1.getEnvironmentConfig)());
|
|
31
|
-
const allowList = this.manifest?.permissions?.external?.images ?? []
|
|
31
|
+
const allowList = (this.manifest?.permissions?.external?.images ?? [])
|
|
32
|
+
.map((item) => (typeof item === 'object' && 'address' in item ? item.address : item))
|
|
33
|
+
.filter((item) => typeof item === 'string');
|
|
32
34
|
const collectedUrls = [
|
|
33
35
|
...allowList,
|
|
34
36
|
...csp_1.ATLASSIAN_IMAGES_HOSTS[microsEnv],
|
|
@@ -2,7 +2,7 @@ import { LintResultRule, LintClass } from '../../../linter-interface';
|
|
|
2
2
|
import { ApiCall, ProductApiCall } from '../api-call-interface';
|
|
3
3
|
import { LintIssueVerifier, BaseLintIssueVerifier } from '../../verifier-interface';
|
|
4
4
|
import { ManifestSchema as Manifest } from '@forge/manifest';
|
|
5
|
-
import { Swagger } from 'atlassian-openapi';
|
|
5
|
+
import { Swagger } from '@atlassian/atlassian-openapi';
|
|
6
6
|
import OAuth2ScopesWithState = Swagger.OAuth2ScopesWithState;
|
|
7
7
|
export interface ProductMethod {
|
|
8
8
|
originalPath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-verifier.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/permission-linter/verifiers/product-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAoB,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"product-verifier.d.ts","sourceRoot":"","sources":["../../../../../src/lint/linters/permission-linter/verifiers/product-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAoB,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,QAAQ,EAAE,aAAa,EAAE,CAAC;QAC1B,2BAA2B,CAAC,EAAE,qBAAqB,EAAE,CAAC;KACvD,CAAC;CACH;AAED,UAAU,aAAa;IACrB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC9B;AAED,oBAAY,uBAAuB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAEjE,qBAAa,eAAgB,SAAQ,qBAAsB,YAAW,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAI9F,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAHxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,EACD,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,MAAM;IAKlC,SAAS,CAAC,YAAY,IAAI,SAAS;IAItB,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAuC3E,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,0BAA0B;IAOlC,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,aAAa;CAWtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/lint",
|
|
3
|
-
"version": "5.9.
|
|
3
|
+
"version": "5.9.1-experimental-b2e5f99",
|
|
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.
|
|
14
|
+
"@forge/api": "^6.0.1",
|
|
15
15
|
"@types/array.prototype.flatmap": "^1.2.6",
|
|
16
16
|
"@types/cross-spawn": "^6.0.6",
|
|
17
|
-
"@types/eslint": "8.56.
|
|
18
|
-
"@types/node-fetch": "^2.6.
|
|
17
|
+
"@types/eslint": "8.56.12",
|
|
18
|
+
"@types/node-fetch": "^2.6.12",
|
|
19
19
|
"eslint-plugin-import": "^2.29.1"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@forge/cli-shared": "8.
|
|
23
|
-
"@forge/csp": "4.
|
|
24
|
-
"@forge/egress": "2.0.
|
|
25
|
-
"@forge/manifest": "10.
|
|
22
|
+
"@forge/cli-shared": "8.1.0-experimental-b2e5f99",
|
|
23
|
+
"@forge/csp": "4.1.0-experimental-b2e5f99",
|
|
24
|
+
"@forge/egress": "2.0.1",
|
|
25
|
+
"@forge/manifest": "10.1.0",
|
|
26
26
|
"@typescript-eslint/typescript-estree": "^5.62.0",
|
|
27
|
-
"array.prototype.flatmap": "^1.3.
|
|
28
|
-
"atlassian-openapi": "^1.0.
|
|
29
|
-
"cross-spawn": "^7.0.
|
|
27
|
+
"array.prototype.flatmap": "^1.3.3",
|
|
28
|
+
"@atlassian/atlassian-openapi": "^1.0.6",
|
|
29
|
+
"cross-spawn": "^7.0.6",
|
|
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
|
+
}
|