@forge/lint 5.18.1 → 5.19.0-next.1

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,29 @@
1
1
  # @forge/lint
2
2
 
3
+ ## 5.19.0-next.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [22613fc]
8
+ - @forge/manifest@12.7.0-next.1
9
+ - @forge/cli-shared@8.21.1-next.1
10
+
11
+ ## 5.19.0-next.0
12
+
13
+ ### Minor Changes
14
+
15
+ - d471144: fix lint
16
+ - 56e38e9: Added support for new v2 url format and validation
17
+
18
+ ### Patch Changes
19
+
20
+ - Updated dependencies [a99c9f1]
21
+ - Updated dependencies [372861e]
22
+ - Updated dependencies [56e38e9]
23
+ - Updated dependencies [aed9912]
24
+ - @forge/manifest@12.7.0-next.0
25
+ - @forge/cli-shared@8.21.1-next.0
26
+
3
27
  ## 5.18.1
4
28
 
5
29
  ### 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",
3
+ "version": "5.19.0-next.1",
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",
22
+ "@forge/cli-shared": "8.21.1-next.1",
23
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.1",
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",