@forge/lint 5.8.2-next.2 → 5.9.0-next.10
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 +83 -0
- package/out/lint/lint.d.ts +3 -2
- package/out/lint/lint.d.ts.map +1 -1
- package/out/lint/lint.js +9 -7
- package/out/lint/linters/manifest-linter/abstract-manifest-linter.d.ts +4 -1
- package/out/lint/linters/manifest-linter/abstract-manifest-linter.d.ts.map +1 -1
- package/out/lint/linters/manifest-linter/abstract-manifest-linter.js +14 -3
- package/out/lint/linters/manifest-linter/basic-manifest-linter.d.ts +2 -1
- package/out/lint/linters/manifest-linter/basic-manifest-linter.d.ts.map +1 -1
- package/out/lint/linters/manifest-linter/basic-manifest-linter.js +2 -2
- package/out/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.d.ts +2 -1
- package/out/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.d.ts.map +1 -1
- package/out/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.js +2 -2
- package/out/lint/linters/manifest-linter/deprecated-egress-permissions-manifest-linter.d.ts +10 -0
- package/out/lint/linters/manifest-linter/deprecated-egress-permissions-manifest-linter.d.ts.map +1 -0
- package/out/lint/linters/manifest-linter/deprecated-egress-permissions-manifest-linter.js +18 -0
- package/out/lint/linters/manifest-linter/full-manifest-linter.d.ts +2 -1
- package/out/lint/linters/manifest-linter/full-manifest-linter.d.ts.map +1 -1
- package/out/lint/linters/manifest-linter/full-manifest-linter.js +2 -2
- package/out/lint/linters/manifest-linter/permissions-manifest-linter.d.ts +2 -1
- package/out/lint/linters/manifest-linter/permissions-manifest-linter.d.ts.map +1 -1
- package/out/lint/linters/manifest-linter/permissions-manifest-linter.js +2 -2
- package/out/lint/linters/manifest-linter/remote-compute-manifest-linter.d.ts +2 -1
- package/out/lint/linters/manifest-linter/remote-compute-manifest-linter.d.ts.map +1 -1
- package/out/lint/linters/manifest-linter/remote-compute-manifest-linter.js +2 -2
- package/out/lint/linters/permission-linter/permission-linter.d.ts.map +1 -1
- package/out/lint/linters/permission-linter/permission-linter.js +38 -12
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,88 @@
|
|
|
1
1
|
# @forge/lint
|
|
2
2
|
|
|
3
|
+
## 5.9.0-next.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [33c5750]
|
|
8
|
+
- @forge/manifest@10.0.0-next.9
|
|
9
|
+
- @forge/cli-shared@8.0.0-next.10
|
|
10
|
+
|
|
11
|
+
## 5.9.0-next.9
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [37eba69]
|
|
16
|
+
- @forge/manifest@10.0.0-next.8
|
|
17
|
+
- @forge/cli-shared@8.0.0-next.9
|
|
18
|
+
|
|
19
|
+
## 5.9.0-next.8
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies [8f2a3c9]
|
|
24
|
+
- @forge/cli-shared@8.0.0-next.8
|
|
25
|
+
- @forge/manifest@10.0.0-next.7
|
|
26
|
+
- @forge/egress@2.0.0-next.0
|
|
27
|
+
- @forge/csp@4.0.0-next.0
|
|
28
|
+
|
|
29
|
+
## 5.9.0-next.7
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- Updated dependencies [a7bd152]
|
|
34
|
+
- Updated dependencies [8a548ce]
|
|
35
|
+
- @forge/manifest@9.5.0-next.6
|
|
36
|
+
- @forge/cli-shared@7.1.0-next.7
|
|
37
|
+
|
|
38
|
+
## 5.9.0-next.6
|
|
39
|
+
|
|
40
|
+
### Minor Changes
|
|
41
|
+
|
|
42
|
+
- 9f050ff: Removed support for Sandbox Runtime and Sanpshots
|
|
43
|
+
|
|
44
|
+
### Patch Changes
|
|
45
|
+
|
|
46
|
+
- Updated dependencies [9f050ff]
|
|
47
|
+
- @forge/cli-shared@7.1.0-next.6
|
|
48
|
+
- @forge/manifest@9.5.0-next.5
|
|
49
|
+
|
|
50
|
+
## 5.9.0-next.5
|
|
51
|
+
|
|
52
|
+
### Minor Changes
|
|
53
|
+
|
|
54
|
+
- 64befbb: Refactor runtime version manifest check into a linter
|
|
55
|
+
|
|
56
|
+
### Patch Changes
|
|
57
|
+
|
|
58
|
+
- dd7cad7: Fix deprecated egress manifest linter
|
|
59
|
+
- Updated dependencies [75b7732]
|
|
60
|
+
- Updated dependencies [64befbb]
|
|
61
|
+
- @forge/cli-shared@7.1.0-next.5
|
|
62
|
+
- @forge/manifest@9.5.0-next.4
|
|
63
|
+
|
|
64
|
+
## 5.9.0-next.4
|
|
65
|
+
|
|
66
|
+
### Patch Changes
|
|
67
|
+
|
|
68
|
+
- Updated dependencies [0c92352]
|
|
69
|
+
- Updated dependencies [18eab48]
|
|
70
|
+
- @forge/manifest@9.5.0-next.3
|
|
71
|
+
- @forge/cli-shared@7.1.0-next.4
|
|
72
|
+
|
|
73
|
+
## 5.9.0-next.3
|
|
74
|
+
|
|
75
|
+
### Minor Changes
|
|
76
|
+
|
|
77
|
+
- b44a5b3: Fix the linter to keep the original object for egress permissions and allow to upgrade egress permissions to object
|
|
78
|
+
|
|
79
|
+
### Patch Changes
|
|
80
|
+
|
|
81
|
+
- Updated dependencies [b44a5b3]
|
|
82
|
+
- Updated dependencies [c3df542]
|
|
83
|
+
- @forge/manifest@9.5.0-next.2
|
|
84
|
+
- @forge/cli-shared@7.1.0-next.3
|
|
85
|
+
|
|
3
86
|
## 5.8.2-next.2
|
|
4
87
|
|
|
5
88
|
### Patch Changes
|
package/out/lint/lint.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { StatsigService } from '@forge/cli-shared';
|
|
1
2
|
import { ManifestSchema as Manifest } from '@forge/manifest';
|
|
2
3
|
import fs from 'fs';
|
|
3
4
|
import { tsParser } from '../parse';
|
|
@@ -9,6 +10,6 @@ export interface ProblemCount {
|
|
|
9
10
|
export declare const reportLintResults: (logger: LintLogger, lintResults: LintResult[], showSummary?: boolean) => void;
|
|
10
11
|
export declare const problemCount: (lintResults: LintResult[]) => ProblemCount;
|
|
11
12
|
export declare const parseSourceFile: (filepath: string, parser: typeof tsParser, readFilePromise?: typeof fs.readFile.__promisify__) => Promise<LintInput>;
|
|
12
|
-
export declare const lint: (filesToLint: string[], manifest: Manifest, environment: string, logger: LintLogger, parseFunction?: (filepath: string, parser: typeof tsParser, readFilePromise?: typeof fs.readFile.__promisify__) => Promise<LintInput>, linters?: LinterInterface[]) => Promise<LintResult[]>;
|
|
13
|
-
export declare const litelint: (logger: LintLogger, linter?: LinterInterface) => Promise<LintResult[]>;
|
|
13
|
+
export declare const lint: (filesToLint: string[], manifest: Manifest, environment: string, logger: LintLogger, statsigService: StatsigService, parseFunction?: (filepath: string, parser: typeof tsParser, readFilePromise?: typeof fs.readFile.__promisify__) => Promise<LintInput>, linters?: LinterInterface[]) => Promise<LintResult[]>;
|
|
14
|
+
export declare const litelint: (logger: LintLogger, statsigService: StatsigService, linter?: LinterInterface) => Promise<LintResult[]>;
|
|
14
15
|
//# sourceMappingURL=lint.d.ts.map
|
package/out/lint/lint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/lint/lint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/lint/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAcxG,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,iBAAiB,WAAY,UAAU,eAAe,UAAU,EAAE,4BAAuB,IA+CrG,CAAC;AAEF,eAAO,MAAM,YAAY,gBAAiB,UAAU,EAAE,KAAG,YAQxD,CAAC;AAEF,eAAO,MAAM,eAAe,aAChB,MAAM,UACR,eAAe,oBACN,OAAO,GAAG,QAAQ,CAAC,aAAa,KAChD,QAAQ,SAAS,CAOnB,CAAC;AAEF,eAAO,MAAM,IAAI,gBACF,MAAM,EAAE,YACX,QAAQ,eACL,MAAM,UACX,UAAU,kBACF,cAAc,6BAjBpB,MAAM,UACR,eAAe,oBACN,OAAO,GAAG,QAAQ,CAAC,aAAa,KAChD,QAAQ,SAAS,CAAC,YAgBV,eAAe,EAAE,KAazB,QAAQ,UAAU,EAAE,CAyCtB,CAAC;AAwBF,eAAO,MAAM,QAAQ,WACX,UAAU,kBACF,cAAc,WACtB,eAAe,KACtB,QAAQ,UAAU,EAAE,CAGtB,CAAC"}
|
package/out/lint/lint.js
CHANGED
|
@@ -18,6 +18,7 @@ const remote_compute_manifest_linter_1 = require("./linters/manifest-linter/remo
|
|
|
18
18
|
const invoke_remote_linter_1 = require("./linters/remote-linter/invoke-remote-linter");
|
|
19
19
|
const storage_module_linter_1 = require("./linters/storage-module-linter/storage-module-linter");
|
|
20
20
|
const frame_component_linter_1 = require("./linters/frame-component-linter/frame-component-linter");
|
|
21
|
+
const deprecated_egress_permissions_manifest_linter_1 = require("./linters/manifest-linter/deprecated-egress-permissions-manifest-linter");
|
|
21
22
|
const reportLintResults = (logger, lintResults, showSummary = true) => {
|
|
22
23
|
let numErrors = 0, numWarnings = 0;
|
|
23
24
|
let noProblemsFound = true;
|
|
@@ -79,17 +80,18 @@ const parseSourceFile = async (filepath, parser, readFilePromise = (0, util_1.pr
|
|
|
79
80
|
};
|
|
80
81
|
};
|
|
81
82
|
exports.parseSourceFile = parseSourceFile;
|
|
82
|
-
const lint = async (filesToLint, manifest, environment, logger, parseFunction = exports.parseSourceFile, linters = [
|
|
83
|
+
const lint = async (filesToLint, manifest, environment, logger, statsigService, parseFunction = exports.parseSourceFile, linters = [
|
|
83
84
|
new permission_linter_1.PermissionLinter(environment, manifest, logger),
|
|
84
|
-
new permissions_manifest_linter_1.PermissionsManifestLinter(logger),
|
|
85
|
-
new deprecated_csp_permissions_manifest_linter_1.DeprecatedCspPermissionsManifestLinter(logger),
|
|
86
|
-
new remote_compute_manifest_linter_1.RemoteComputeManifestLinter(logger),
|
|
87
|
-
new full_manifest_linter_1.FullManifestLinter(logger),
|
|
85
|
+
new permissions_manifest_linter_1.PermissionsManifestLinter(logger, statsigService),
|
|
86
|
+
new deprecated_csp_permissions_manifest_linter_1.DeprecatedCspPermissionsManifestLinter(logger, statsigService),
|
|
87
|
+
new remote_compute_manifest_linter_1.RemoteComputeManifestLinter(logger, statsigService),
|
|
88
|
+
new full_manifest_linter_1.FullManifestLinter(logger, statsigService),
|
|
88
89
|
new handler_linter_1.HandlerLinter(environment, manifest, logger),
|
|
89
90
|
new dynamic_properties_permissions_linter_1.DynamicPropertiesPermissionsLinter(environment, manifest, logger),
|
|
90
91
|
new invoke_remote_linter_1.InvokeRemoteLinter(environment, manifest, logger),
|
|
91
92
|
new storage_module_linter_1.StorageModulesLinter(environment, manifest, logger),
|
|
92
|
-
new frame_component_linter_1.FrameComponentLinter(environment, manifest, logger)
|
|
93
|
+
new frame_component_linter_1.FrameComponentLinter(environment, manifest, logger),
|
|
94
|
+
new deprecated_egress_permissions_manifest_linter_1.DeprecatedEgressPermissionsManifestLinter(logger, statsigService)
|
|
93
95
|
]) => {
|
|
94
96
|
const { include, exclude } = await (0, cli_shared_1.listTSConfigIncludeExclude)(new cli_shared_1.FileSystemReader());
|
|
95
97
|
const tsInclude = new Set(include);
|
|
@@ -137,7 +139,7 @@ function formatCompileErrorMessage(error) {
|
|
|
137
139
|
}
|
|
138
140
|
return errorMessage;
|
|
139
141
|
}
|
|
140
|
-
const litelint = async (logger, linter = new basic_manifest_linter_1.BasicManifestLinter(logger)) => {
|
|
142
|
+
const litelint = async (logger, statsigService, linter = new basic_manifest_linter_1.BasicManifestLinter(logger, statsigService)) => {
|
|
141
143
|
await linter.bootstrap();
|
|
142
144
|
return linter.batchExecute();
|
|
143
145
|
};
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { ValidationTypes, ManifestValidationResult, ProcessorInterface, SchemaValidationError } from '@forge/manifest';
|
|
2
2
|
import { LintResult, LintResultRule, LintFixState, LintLogger } from '../../linter-interface';
|
|
3
3
|
import { AbstractLinter } from '../../abstract-linter';
|
|
4
|
+
import { StatsigService } from '@forge/cli-shared';
|
|
4
5
|
export declare class AbstractManifestLinter extends AbstractLinter {
|
|
5
6
|
private readonly type;
|
|
6
7
|
private processor;
|
|
7
|
-
|
|
8
|
+
private readonly statsigService;
|
|
9
|
+
constructor(type: ValidationTypes, logger: LintLogger, statsigService: StatsigService);
|
|
8
10
|
private mapManifestResponse;
|
|
9
11
|
getProcessor(): ProcessorInterface<any> | undefined;
|
|
10
12
|
batchExecuteImpl(): Promise<LintResult[]>;
|
|
11
13
|
bootstrap(): Promise<void>;
|
|
14
|
+
private getOptions;
|
|
12
15
|
protected getFixer(): ((errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>) | undefined;
|
|
13
16
|
protected getResultsForFixer(results: ManifestValidationResult<any>): SchemaValidationError[];
|
|
14
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/abstract-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGf,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"abstract-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/abstract-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGf,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAa,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,sBAAuB,SAAQ,cAAc;IAKtD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAG7B,IAAI,EAAE,eAAe,EACtC,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,cAAc;IAMhC,OAAO,CAAC,mBAAmB;IAmB3B,YAAY,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,SAAS;IAI7C,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAUzC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQlB,UAAU;IAOxB,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,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,CAAC,GAAG,CAAC,GAAG,qBAAqB,EAAE;CAG9F"}
|
|
@@ -7,9 +7,11 @@ const abstract_linter_1 = require("../../abstract-linter");
|
|
|
7
7
|
class AbstractManifestLinter extends abstract_linter_1.AbstractLinter {
|
|
8
8
|
type;
|
|
9
9
|
processor;
|
|
10
|
-
|
|
10
|
+
statsigService;
|
|
11
|
+
constructor(type, logger, statsigService) {
|
|
11
12
|
super(logger);
|
|
12
13
|
this.type = type;
|
|
14
|
+
this.statsigService = statsigService;
|
|
13
15
|
}
|
|
14
16
|
mapManifestResponse(results, fixer) {
|
|
15
17
|
const manifestLintResults = new linter_interface_1.LintResult(manifest_1.MANIFEST_FILE, fixer);
|
|
@@ -35,10 +37,19 @@ class AbstractManifestLinter extends abstract_linter_1.AbstractLinter {
|
|
|
35
37
|
const results = await this.processor.process();
|
|
36
38
|
return [this.mapManifestResponse(results, this.getFixer())];
|
|
37
39
|
}
|
|
38
|
-
bootstrap() {
|
|
39
|
-
this.processor = manifest_1.ProcessorBuilder.instance()
|
|
40
|
+
async bootstrap() {
|
|
41
|
+
this.processor = manifest_1.ProcessorBuilder.instance()
|
|
42
|
+
.withValidation(this.type)
|
|
43
|
+
.withOptions(await this.getOptions())
|
|
44
|
+
.build();
|
|
40
45
|
return Promise.resolve();
|
|
41
46
|
}
|
|
47
|
+
async getOptions() {
|
|
48
|
+
const options = {
|
|
49
|
+
deprecatedRuntimes: await this.statsigService.getDeprecatedRuntimes()
|
|
50
|
+
};
|
|
51
|
+
return options;
|
|
52
|
+
}
|
|
42
53
|
getFixer() {
|
|
43
54
|
return undefined;
|
|
44
55
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AbstractManifestLinter } from './abstract-manifest-linter';
|
|
2
2
|
import { LintLogger } from '../../linter-interface';
|
|
3
|
+
import { StatsigService } from '@forge/cli-shared';
|
|
3
4
|
export declare class BasicManifestLinter extends AbstractManifestLinter {
|
|
4
|
-
constructor(logger: LintLogger);
|
|
5
|
+
constructor(logger: LintLogger, statsigService: StatsigService);
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=basic-manifest-linter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/basic-manifest-linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"basic-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/basic-manifest-linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,mBAAoB,SAAQ,sBAAsB;gBACjD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;CAG/D"}
|
|
@@ -4,8 +4,8 @@ exports.BasicManifestLinter = void 0;
|
|
|
4
4
|
const manifest_1 = require("@forge/manifest");
|
|
5
5
|
const abstract_manifest_linter_1 = require("./abstract-manifest-linter");
|
|
6
6
|
class BasicManifestLinter extends abstract_manifest_linter_1.AbstractManifestLinter {
|
|
7
|
-
constructor(logger) {
|
|
8
|
-
super(manifest_1.ValidationTypes.BASIC, logger);
|
|
7
|
+
constructor(logger, statsigService) {
|
|
8
|
+
super(manifest_1.ValidationTypes.BASIC, logger, statsigService);
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
exports.BasicManifestLinter = BasicManifestLinter;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ManifestValidationResult, SchemaValidationError } from '@forge/manifest';
|
|
2
2
|
import { AbstractManifestLinter } from './abstract-manifest-linter';
|
|
3
3
|
import { LintResultRule, LintFixState, LintLogger } from '../../linter-interface';
|
|
4
|
+
import { StatsigService } from '@forge/cli-shared';
|
|
4
5
|
export declare class DeprecatedCspPermissionsManifestLinter extends AbstractManifestLinter {
|
|
5
|
-
constructor(logger: LintLogger);
|
|
6
|
+
constructor(logger: LintLogger, statsigService: StatsigService);
|
|
6
7
|
getFixer(): ((errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>) | undefined;
|
|
7
8
|
getResultsForFixer(results: ManifestValidationResult<any>): SchemaValidationError[];
|
|
8
9
|
}
|
package/out/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecated-csp-permissions-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"deprecated-csp-permissions-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,sCAAuC,SAAQ,sBAAsB;gBACpE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;IAI9D,QAAQ,IACJ,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GACtG,SAAS;IAIb,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,CAAC,GAAG,CAAC,GAAG,qBAAqB,EAAE;CAGpF"}
|
|
@@ -5,8 +5,8 @@ const manifest_1 = require("@forge/manifest");
|
|
|
5
5
|
const abstract_manifest_linter_1 = require("./abstract-manifest-linter");
|
|
6
6
|
const permission_linter_1 = require("../permission-linter/permission-linter");
|
|
7
7
|
class DeprecatedCspPermissionsManifestLinter extends abstract_manifest_linter_1.AbstractManifestLinter {
|
|
8
|
-
constructor(logger) {
|
|
9
|
-
super(manifest_1.ValidationTypes.DEPRECATED_CSP_METHOD, logger);
|
|
8
|
+
constructor(logger, statsigService) {
|
|
9
|
+
super(manifest_1.ValidationTypes.DEPRECATED_CSP_METHOD, logger, statsigService);
|
|
10
10
|
}
|
|
11
11
|
getFixer() {
|
|
12
12
|
return permission_linter_1.fixMissingPermissions;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ManifestValidationResult, SchemaValidationError } from '@forge/manifest';
|
|
2
|
+
import { AbstractManifestLinter } from './abstract-manifest-linter';
|
|
3
|
+
import { LintResultRule, LintFixState, LintLogger } from '../../linter-interface';
|
|
4
|
+
import { StatsigService } from '@forge/cli-shared';
|
|
5
|
+
export declare class DeprecatedEgressPermissionsManifestLinter extends AbstractManifestLinter {
|
|
6
|
+
constructor(logger: LintLogger, statsigService: StatsigService);
|
|
7
|
+
getFixer(): ((errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>) | undefined;
|
|
8
|
+
getResultsForFixer(results: ManifestValidationResult<any>): SchemaValidationError[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=deprecated-egress-permissions-manifest-linter.d.ts.map
|
package/out/lint/linters/manifest-linter/deprecated-egress-permissions-manifest-linter.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated-egress-permissions-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/deprecated-egress-permissions-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,yCAA0C,SAAQ,sBAAsB;gBACvE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;IAI9D,QAAQ,IACJ,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GACtG,SAAS;IAIb,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,CAAC,GAAG,CAAC,GAAG,qBAAqB,EAAE;CAGpF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeprecatedEgressPermissionsManifestLinter = void 0;
|
|
4
|
+
const manifest_1 = require("@forge/manifest");
|
|
5
|
+
const abstract_manifest_linter_1 = require("./abstract-manifest-linter");
|
|
6
|
+
const permission_linter_1 = require("../permission-linter/permission-linter");
|
|
7
|
+
class DeprecatedEgressPermissionsManifestLinter extends abstract_manifest_linter_1.AbstractManifestLinter {
|
|
8
|
+
constructor(logger, statsigService) {
|
|
9
|
+
super(manifest_1.ValidationTypes.DEPRECATED_EGRESS_PERMISSIONS, logger, statsigService);
|
|
10
|
+
}
|
|
11
|
+
getFixer() {
|
|
12
|
+
return permission_linter_1.fixMissingPermissions;
|
|
13
|
+
}
|
|
14
|
+
getResultsForFixer(results) {
|
|
15
|
+
return results.errors?.filter((error) => error.metadata?.hasDeprecatedEgressPermissions) || [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.DeprecatedEgressPermissionsManifestLinter = DeprecatedEgressPermissionsManifestLinter;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AbstractManifestLinter } from './abstract-manifest-linter';
|
|
2
2
|
import { LintLogger } from '../../linter-interface';
|
|
3
|
+
import { StatsigService } from '@forge/cli-shared';
|
|
3
4
|
export declare class FullManifestLinter extends AbstractManifestLinter {
|
|
4
|
-
constructor(logger: LintLogger);
|
|
5
|
+
constructor(logger: LintLogger, statsigService: StatsigService);
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=full-manifest-linter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"full-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/full-manifest-linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"full-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/full-manifest-linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,kBAAmB,SAAQ,sBAAsB;gBAChD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;CAG/D"}
|
|
@@ -4,8 +4,8 @@ exports.FullManifestLinter = void 0;
|
|
|
4
4
|
const manifest_1 = require("@forge/manifest");
|
|
5
5
|
const abstract_manifest_linter_1 = require("./abstract-manifest-linter");
|
|
6
6
|
class FullManifestLinter extends abstract_manifest_linter_1.AbstractManifestLinter {
|
|
7
|
-
constructor(logger) {
|
|
8
|
-
super(manifest_1.ValidationTypes.FULL, logger);
|
|
7
|
+
constructor(logger, statsigService) {
|
|
8
|
+
super(manifest_1.ValidationTypes.FULL, logger, statsigService);
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
exports.FullManifestLinter = FullManifestLinter;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ManifestValidationResult, SchemaValidationError } from '@forge/manifest';
|
|
2
2
|
import { AbstractManifestLinter } from './abstract-manifest-linter';
|
|
3
3
|
import { LintResultRule, LintFixState, LintLogger } from '../../linter-interface';
|
|
4
|
+
import { StatsigService } from '@forge/cli-shared';
|
|
4
5
|
export declare class PermissionsManifestLinter extends AbstractManifestLinter {
|
|
5
|
-
constructor(logger: LintLogger);
|
|
6
|
+
constructor(logger: LintLogger, statsigService: StatsigService);
|
|
6
7
|
getFixer(): ((errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>) | undefined;
|
|
7
8
|
getResultsForFixer(results: ManifestValidationResult<any>): SchemaValidationError[];
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/permissions-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/permissions-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,yBAA0B,SAAQ,sBAAsB;gBACvD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;IAI9D,QAAQ,IACJ,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GACtG,SAAS;IAIb,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,CAAC,GAAG,CAAC,GAAG,qBAAqB,EAAE;CAGpF"}
|
|
@@ -5,8 +5,8 @@ const manifest_1 = require("@forge/manifest");
|
|
|
5
5
|
const abstract_manifest_linter_1 = require("./abstract-manifest-linter");
|
|
6
6
|
const permission_linter_1 = require("../permission-linter/permission-linter");
|
|
7
7
|
class PermissionsManifestLinter extends abstract_manifest_linter_1.AbstractManifestLinter {
|
|
8
|
-
constructor(logger) {
|
|
9
|
-
super(manifest_1.ValidationTypes.PRODUCT_TRIGGER, logger);
|
|
8
|
+
constructor(logger, statsigService) {
|
|
9
|
+
super(manifest_1.ValidationTypes.PRODUCT_TRIGGER, logger, statsigService);
|
|
10
10
|
}
|
|
11
11
|
getFixer() {
|
|
12
12
|
return permission_linter_1.fixMissingPermissions;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ManifestValidationResult, SchemaValidationError } from '@forge/manifest';
|
|
2
2
|
import { AbstractManifestLinter } from './abstract-manifest-linter';
|
|
3
3
|
import { LintResultRule, LintFixState, LintLogger } from '../../linter-interface';
|
|
4
|
+
import { StatsigService } from '@forge/cli-shared';
|
|
4
5
|
export declare class RemoteComputeManifestLinter extends AbstractManifestLinter {
|
|
5
|
-
constructor(logger: LintLogger);
|
|
6
|
+
constructor(logger: LintLogger, statsigService: StatsigService);
|
|
6
7
|
getFixer(): ((errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>) | undefined;
|
|
7
8
|
getResultsForFixer(results: ManifestValidationResult<any>): SchemaValidationError[];
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-compute-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/remote-compute-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"remote-compute-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/remote-compute-manifest-linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,2BAA4B,SAAQ,sBAAsB;gBACzD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;IAI9D,QAAQ,IACJ,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,GACtG,SAAS;IAIb,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,CAAC,GAAG,CAAC,GAAG,qBAAqB,EAAE;CAGpF"}
|
|
@@ -5,8 +5,8 @@ const manifest_1 = require("@forge/manifest");
|
|
|
5
5
|
const abstract_manifest_linter_1 = require("./abstract-manifest-linter");
|
|
6
6
|
const permission_linter_1 = require("../permission-linter/permission-linter");
|
|
7
7
|
class RemoteComputeManifestLinter extends abstract_manifest_linter_1.AbstractManifestLinter {
|
|
8
|
-
constructor(logger) {
|
|
9
|
-
super(manifest_1.ValidationTypes.FORGE_REMOTE_COMPUTE, logger);
|
|
8
|
+
constructor(logger, statsigService) {
|
|
9
|
+
super(manifest_1.ValidationTypes.FORGE_REMOTE_COMPUTE, logger, statsigService);
|
|
10
10
|
}
|
|
11
11
|
getFixer() {
|
|
12
12
|
return permission_linter_1.fixMissingPermissions;
|
|
@@ -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;
|
|
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"}
|
|
@@ -37,27 +37,20 @@ const fixMissingPermissions = async (errors, warnings, state) => {
|
|
|
37
37
|
const missingExternalFetchBackend = (0, exports.findMissingPermissions)(errors, warnings, 'missingExternalFetchPermission', state);
|
|
38
38
|
const missingContentStyle = (0, exports.findMissingPermissions)(errors, warnings, 'missingContentStylePermission', state);
|
|
39
39
|
const missingExternalImage = (0, exports.findMissingPermissions)(errors, warnings, 'missingExternalImagesPermission', state);
|
|
40
|
+
const hasDeprecatedEgressPermissions = errors.some((error) => error.metadata?.hasDeprecatedEgressPermissions) ||
|
|
41
|
+
missingExternalImage.size > 0 ||
|
|
42
|
+
missingExternalFetchBackend.size > 0;
|
|
40
43
|
const currentPermissions = (await state.configFile.readConfig())?.permissions ?? {};
|
|
41
|
-
const currentRemotes = (await state.configFile.readConfig())?.remotes ?? [];
|
|
42
44
|
const currentScopes = (0, utils_1.getAllScopeKeys)(currentPermissions?.scopes ?? []);
|
|
43
45
|
currentScopes.forEach((scope) => missingScopes.add(scope));
|
|
44
46
|
const currentExternalFetchBackend = currentPermissions?.external?.fetch?.backend ?? [];
|
|
45
|
-
currentExternalFetchBackend
|
|
46
|
-
.map((item) => {
|
|
47
|
-
if (typeof item === 'string')
|
|
48
|
-
return item;
|
|
49
|
-
if ('address' in item)
|
|
50
|
-
return item.address;
|
|
51
|
-
return currentRemotes.find((remote) => remote.key == item.remote)?.baseUrl;
|
|
52
|
-
})
|
|
53
|
-
.filter((item) => typeof item === 'string')
|
|
54
|
-
.forEach((scope) => missingExternalFetchBackend.add(scope));
|
|
47
|
+
currentExternalFetchBackend.forEach((scope) => missingExternalFetchBackend.add(scope));
|
|
55
48
|
const arrayMissingExternalFetchBackend = [...missingExternalFetchBackend];
|
|
56
49
|
const currentContentStyles = currentPermissions?.content?.styles ?? [];
|
|
57
50
|
currentContentStyles.forEach((scope) => missingContentStyle.add(scope));
|
|
58
51
|
const arrayMissingContentStyles = [...missingContentStyle];
|
|
59
52
|
const currentExternalImages = currentPermissions?.external?.images ?? [];
|
|
60
|
-
currentExternalImages.forEach((scope) => missingExternalImage.add(
|
|
53
|
+
currentExternalImages.forEach((scope) => missingExternalImage.add(scope));
|
|
61
54
|
const arrayMissingExternalImages = [...missingExternalImage];
|
|
62
55
|
const config = {
|
|
63
56
|
...currentPermissions,
|
|
@@ -84,6 +77,39 @@ const fixMissingPermissions = async (errors, warnings, state) => {
|
|
|
84
77
|
styles: arrayMissingContentStyles
|
|
85
78
|
};
|
|
86
79
|
}
|
|
80
|
+
if (hasDeprecatedEgressPermissions) {
|
|
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
|
+
});
|
|
112
|
+
}
|
|
87
113
|
await state.configFile.writeToConfigFile('permissions', config);
|
|
88
114
|
return state;
|
|
89
115
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/lint",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.9.0-next.10",
|
|
4
4
|
"description": "Linting for forge apps",
|
|
5
5
|
"main": "out/index.js",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@atlassian/xen-test-util": "^4.2.0",
|
|
14
|
-
"@forge/api": "^
|
|
14
|
+
"@forge/api": "^6.0.0-next.0",
|
|
15
15
|
"@types/array.prototype.flatmap": "^1.2.6",
|
|
16
16
|
"@types/cross-spawn": "^6.0.6",
|
|
17
17
|
"@types/eslint": "8.56.2",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"eslint-plugin-import": "^2.29.1"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@forge/cli-shared": "
|
|
23
|
-
"@forge/csp": "
|
|
24
|
-
"@forge/egress": "
|
|
25
|
-
"@forge/manifest": "
|
|
22
|
+
"@forge/cli-shared": "8.0.0-next.10",
|
|
23
|
+
"@forge/csp": "4.0.0-next.0",
|
|
24
|
+
"@forge/egress": "2.0.0-next.0",
|
|
25
|
+
"@forge/manifest": "10.0.0-next.9",
|
|
26
26
|
"@typescript-eslint/typescript-estree": "^5.62.0",
|
|
27
27
|
"array.prototype.flatmap": "^1.3.2",
|
|
28
28
|
"atlassian-openapi": "^1.0.18",
|