@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.
Files changed (28) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/out/lint/lint.d.ts +3 -2
  3. package/out/lint/lint.d.ts.map +1 -1
  4. package/out/lint/lint.js +9 -7
  5. package/out/lint/linters/manifest-linter/abstract-manifest-linter.d.ts +4 -1
  6. package/out/lint/linters/manifest-linter/abstract-manifest-linter.d.ts.map +1 -1
  7. package/out/lint/linters/manifest-linter/abstract-manifest-linter.js +14 -3
  8. package/out/lint/linters/manifest-linter/basic-manifest-linter.d.ts +2 -1
  9. package/out/lint/linters/manifest-linter/basic-manifest-linter.d.ts.map +1 -1
  10. package/out/lint/linters/manifest-linter/basic-manifest-linter.js +2 -2
  11. package/out/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.d.ts +2 -1
  12. package/out/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.d.ts.map +1 -1
  13. package/out/lint/linters/manifest-linter/deprecated-csp-permissions-manifest-linter.js +2 -2
  14. package/out/lint/linters/manifest-linter/deprecated-egress-permissions-manifest-linter.d.ts +10 -0
  15. package/out/lint/linters/manifest-linter/deprecated-egress-permissions-manifest-linter.d.ts.map +1 -0
  16. package/out/lint/linters/manifest-linter/deprecated-egress-permissions-manifest-linter.js +18 -0
  17. package/out/lint/linters/manifest-linter/full-manifest-linter.d.ts +2 -1
  18. package/out/lint/linters/manifest-linter/full-manifest-linter.d.ts.map +1 -1
  19. package/out/lint/linters/manifest-linter/full-manifest-linter.js +2 -2
  20. package/out/lint/linters/manifest-linter/permissions-manifest-linter.d.ts +2 -1
  21. package/out/lint/linters/manifest-linter/permissions-manifest-linter.d.ts.map +1 -1
  22. package/out/lint/linters/manifest-linter/permissions-manifest-linter.js +2 -2
  23. package/out/lint/linters/manifest-linter/remote-compute-manifest-linter.d.ts +2 -1
  24. package/out/lint/linters/manifest-linter/remote-compute-manifest-linter.d.ts.map +1 -1
  25. package/out/lint/linters/manifest-linter/remote-compute-manifest-linter.js +2 -2
  26. package/out/lint/linters/permission-linter/permission-linter.d.ts.map +1 -1
  27. package/out/lint/linters/permission-linter/permission-linter.js +38 -12
  28. 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
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/lint/lint.ts"],"names":[],"mappings":"AAQA,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;AAaxG,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,6BAhBR,MAAM,UACR,eAAe,oBACN,OAAO,GAAG,QAAQ,CAAC,aAAa,KAChD,QAAQ,SAAS,CAAC,YAeV,eAAe,EAAE,KAYzB,QAAQ,UAAU,EAAE,CAyCtB,CAAC;AAwBF,eAAO,MAAM,QAAQ,WACX,UAAU,WACV,eAAe,KACtB,QAAQ,UAAU,EAAE,CAGtB,CAAC"}
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
- constructor(type: ValidationTypes, logger: LintLogger);
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,EACtB,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;AAEvD,qBAAa,sBAAuB,SAAQ,cAAc;IAItD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,OAAO,CAAC,SAAS,CAAsC;gBAGpC,IAAI,EAAE,eAAe,EACtC,MAAM,EAAE,UAAU;IAKpB,OAAO,CAAC,mBAAmB;IAmB3B,YAAY,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,SAAS;IAI7C,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAU/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,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"}
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
- constructor(type, logger) {
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().withValidation(this.type).build();
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;AAEpD,qBAAa,mBAAoB,SAAQ,sBAAsB;gBACjD,MAAM,EAAE,UAAU;CAG/B"}
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
  }
@@ -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;AAGlF,qBAAa,sCAAuC,SAAQ,sBAAsB;gBACpE,MAAM,EAAE,UAAU;IAI9B,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"}
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
@@ -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;AAEpD,qBAAa,kBAAmB,SAAQ,sBAAsB;gBAChD,MAAM,EAAE,UAAU;CAG/B"}
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;AAGlF,qBAAa,yBAA0B,SAAQ,sBAAsB;gBACvD,MAAM,EAAE,UAAU;IAI9B,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"}
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;AAGlF,qBAAa,2BAA4B,SAAQ,sBAAsB;gBACzD,MAAM,EAAE,UAAU;IAI9B,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"}
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;AAWrB,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,CAkEtB,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"}
@@ -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(typeof scope === 'string' ? scope : scope.address));
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.8.2-next.2",
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": "^5.3.0",
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": "7.1.0-next.2",
23
- "@forge/csp": "3.9.0",
24
- "@forge/egress": "1.4.1",
25
- "@forge/manifest": "9.5.0-next.1",
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",