@forge/lint 5.18.1-next.1 → 5.19.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @forge/lint
2
2
 
3
+ ## 5.19.0-next.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d471144: fix lint
8
+ - 56e38e9: Added support for new v2 url format and validation
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies [a99c9f1]
13
+ - Updated dependencies [372861e]
14
+ - Updated dependencies [56e38e9]
15
+ - Updated dependencies [aed9912]
16
+ - @forge/manifest@12.7.0-next.0
17
+ - @forge/cli-shared@8.21.1-next.0
18
+
19
+ ## 5.18.1
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies [7f9ae91]
24
+ - Updated dependencies [e7fa544]
25
+ - @forge/cli-shared@8.21.0
26
+ - @forge/csp@5.8.0
27
+
3
28
  ## 5.18.1-next.1
4
29
 
5
30
  ### Patch Changes
@@ -1,7 +1,8 @@
1
1
  import { AbstractManifestLinter } from './abstract-manifest-linter';
2
- import { LintLogger } from '../../linter-interface';
2
+ import { LintLogger, LintResultRule, LintFixState } from '../../linter-interface';
3
3
  import { StatsigService } from '@forge/cli-shared';
4
4
  export declare class FullManifestLinter extends AbstractManifestLinter {
5
5
  constructor(logger: LintLogger, statsigService: StatsigService);
6
+ protected getFixer(): ((errors: LintResultRule[], warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>) | undefined;
6
7
  }
7
8
  //# 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;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,kBAAmB,SAAQ,sBAAsB;gBAChD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;CAG/D"}
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,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,qBAAa,kBAAmB,SAAQ,sBAAsB;gBAChD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc;IAI9D,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;CAGd"}
@@ -3,9 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FullManifestLinter = void 0;
4
4
  const manifest_1 = require("@forge/manifest");
5
5
  const abstract_manifest_linter_1 = require("./abstract-manifest-linter");
6
+ const webtrigger_url_format_manifest_linter_1 = require("./webtrigger-url-format-manifest-linter");
6
7
  class FullManifestLinter extends abstract_manifest_linter_1.AbstractManifestLinter {
7
8
  constructor(logger, statsigService) {
8
9
  super(manifest_1.ValidationTypes.FULL, logger, statsigService);
9
10
  }
11
+ getFixer() {
12
+ return webtrigger_url_format_manifest_linter_1.fixInvalidUrlFormat;
13
+ }
10
14
  }
11
15
  exports.FullManifestLinter = FullManifestLinter;
@@ -0,0 +1,3 @@
1
+ import { LintResultRule, LintFixState } from '../../linter-interface';
2
+ export declare const fixInvalidUrlFormat: (_errors: LintResultRule[], _warnings: LintResultRule[], state: LintFixState) => Promise<LintFixState>;
3
+ //# sourceMappingURL=webtrigger-url-format-manifest-linter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webtrigger-url-format-manifest-linter.d.ts","sourceRoot":"","sources":["../../../../src/lint/linters/manifest-linter/webtrigger-url-format-manifest-linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItE,eAAO,MAAM,mBAAmB,YACrB,cAAc,EAAE,aACd,cAAc,EAAE,SACpB,YAAY,KAClB,QAAQ,YAAY,CA+BtB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fixInvalidUrlFormat = void 0;
4
+ const VALID_URL_FORMATS = ['v1', 'v2'];
5
+ const fixInvalidUrlFormat = async (_errors, _warnings, state) => {
6
+ const currentModules = (await state.configFile.readConfig())?.modules ?? {};
7
+ const webtriggers = currentModules.webtrigger;
8
+ if (!webtriggers || webtriggers.length === 0) {
9
+ return state;
10
+ }
11
+ const invalidEntries = webtriggers.filter((wt) => typeof wt.urlFormat === 'string' && !VALID_URL_FORMATS.includes(wt.urlFormat));
12
+ if (invalidEntries.length === 0) {
13
+ return state;
14
+ }
15
+ const fixedWebtriggers = webtriggers.map((wt) => invalidEntries.includes(wt) ? { ...wt, urlFormat: 'v2' } : wt);
16
+ const newModules = { ...currentModules, webtrigger: fixedWebtriggers };
17
+ await state.configFile.writeToConfigFile('modules', newModules);
18
+ state.errorsFixed += invalidEntries.length;
19
+ return state;
20
+ };
21
+ exports.fixInvalidUrlFormat = fixInvalidUrlFormat;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/lint",
3
- "version": "5.18.1-next.1",
3
+ "version": "5.19.0-next.0",
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": "^7.1.4",
14
+ "@forge/api": "^7.2.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.12",
@@ -19,10 +19,10 @@
19
19
  "eslint-plugin-import": "^2.29.1"
20
20
  },
21
21
  "dependencies": {
22
- "@forge/cli-shared": "8.21.0-next.0",
23
- "@forge/csp": "5.8.0-next.0",
22
+ "@forge/cli-shared": "8.21.1-next.0",
23
+ "@forge/csp": "5.8.0",
24
24
  "@forge/egress": "2.3.2",
25
- "@forge/manifest": "12.6.0",
25
+ "@forge/manifest": "12.7.0-next.0",
26
26
  "@typescript-eslint/typescript-estree": "^5.62.0",
27
27
  "array.prototype.flatmap": "^1.3.3",
28
28
  "@atlassian/atlassian-openapi": "^1.0.6",