@forge/cli 7.0.4-next.0-experimental-326ff96 → 7.0.4-next.3

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,21 +1,36 @@
1
1
  # @forge/cli
2
2
 
3
- ## 7.0.4-next.0-experimental-326ff96
3
+ ## 7.0.4-next.3
4
4
 
5
- ### Minor Changes
5
+ ### Patch Changes
6
6
 
7
- - 5477c90: Support for AI modules
7
+ - Updated dependencies [b44f823]
8
+ - @forge/manifest@6.0.0-next.1
9
+ - @forge/cli-shared@3.23.4-next.2
10
+ - @forge/lint@4.0.6-next.2
11
+ - @forge/tunnel@4.0.4-next.3
12
+ - @forge/bundler@4.15.4-next.3
13
+
14
+ ## 7.0.4-next.2
8
15
 
9
16
  ### Patch Changes
10
17
 
11
- - Updated dependencies [afb1634]
12
- - Updated dependencies [5477c90]
13
- - Updated dependencies [75f0e40]
14
- - @forge/manifest@5.6.0-next.0-experimental-326ff96
15
- - @forge/cli-shared@3.23.4-next.0-experimental-326ff96
16
- - @forge/lint@4.0.6-next.0-experimental-326ff96
17
- - @forge/tunnel@4.0.4-next.0-experimental-326ff96
18
- - @forge/bundler@4.15.4-next.0-experimental-326ff96
18
+ - Updated dependencies [803a8b0]
19
+ - @forge/node-runtime@0.7.1-next.0
20
+ - @forge/runtime@5.4.1-next.0
21
+ - @forge/bundler@4.15.4-next.2
22
+ - @forge/tunnel@4.0.4-next.2
23
+
24
+ ## 7.0.4-next.1
25
+
26
+ ### Patch Changes
27
+
28
+ - a5d062c: Added error messages for Forge apps containing Connect modules where there is an installation error due to a macro collision or failed descriptor validation.
29
+ - Updated dependencies [a5d062c]
30
+ - @forge/cli-shared@3.23.4-next.1
31
+ - @forge/bundler@4.15.4-next.1
32
+ - @forge/lint@4.0.6-next.1
33
+ - @forge/tunnel@4.0.4-next.1
19
34
 
20
35
  ## 7.0.4-next.0
21
36
 
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "7.0.4-next.0-experimental-326ff96",
3
+ "version": "7.0.4-next.3",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@forge/cli",
9
- "version": "7.0.4-next.0-experimental-326ff96",
9
+ "version": "7.0.4-next.3",
10
10
  "hasInstallScript": true,
11
11
  "license": "UNLICENSED",
12
12
  "dependencies": {
13
- "@forge/bundler": "4.15.4-next.0-experimental-326ff96",
14
- "@forge/cli-shared": "3.23.4-next.0-experimental-326ff96",
13
+ "@forge/bundler": "4.15.4-next.3",
14
+ "@forge/cli-shared": "3.23.4-next.2",
15
15
  "@forge/egress": "1.2.13",
16
- "@forge/lint": "4.0.6-next.0-experimental-326ff96",
17
- "@forge/manifest": "5.6.0-next.0-experimental-326ff96",
18
- "@forge/node-runtime": "0.7.0",
19
- "@forge/runtime": "5.4.0",
20
- "@forge/tunnel": "4.0.4-next.0-experimental-326ff96",
16
+ "@forge/lint": "4.0.6-next.2",
17
+ "@forge/manifest": "6.0.0-next.1",
18
+ "@forge/node-runtime": "0.7.1-next.0",
19
+ "@forge/runtime": "5.4.1-next.0",
20
+ "@forge/tunnel": "4.0.4-next.3",
21
21
  "@forge/util": "1.4.1",
22
22
  "@sentry/node": "7.100.1",
23
23
  "ajv": "^8.12.0",
@@ -878,9 +878,9 @@
878
878
  "integrity": "sha512-AyuVoQXu5QLqdBnID8T7zL8jfobESvBXRoEHhg62qD6FS2pmGTLWNnahreX0qQKYGn45Wa6xNaJ890xYhfua1Q=="
879
879
  },
880
880
  "node_modules/@forge/bundler": {
881
- "version": "4.15.4-next.0-experimental-326ff96",
882
- "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.15.4-next.0-experimental-326ff96.tgz",
883
- "integrity": "sha512-Nq0t3lg4gvm03r4ksm3SItOcioCPI1OcaigS7aMxtl/4sy+xJ4ViDdcbzLE3T/ZyzcHdChXq9UBBs5OM8amq6Q==",
881
+ "version": "4.15.4-next.3",
882
+ "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.15.4-next.3.tgz",
883
+ "integrity": "sha512-+QkPmXoiErfvDAEONGZZjre3C9JoKH7VoOvck9upCz03X/i0EqrzADED5rsAc1UKFOyqdkhiBg7IBlJKy/7DdQ==",
884
884
  "dependencies": {
885
885
  "@babel/core": "^7.23.9",
886
886
  "@babel/plugin-transform-class-properties": "^7.23.3",
@@ -891,9 +891,9 @@
891
891
  "@babel/preset-typescript": "^7.23.3",
892
892
  "@forge/api": "3.2.0",
893
893
  "@forge/babel-plugin-transform-ui": "1.1.17",
894
- "@forge/cli-shared": "3.23.4-next.0-experimental-326ff96",
895
- "@forge/lint": "4.0.6-next.0-experimental-326ff96",
896
- "@forge/node-runtime": "0.7.0",
894
+ "@forge/cli-shared": "3.23.4-next.2",
895
+ "@forge/lint": "4.0.6-next.2",
896
+ "@forge/node-runtime": "0.7.1-next.0",
897
897
  "@forge/util": "1.4.1",
898
898
  "assert": "^2.1.0",
899
899
  "babel-loader": "^8.3.0",
@@ -950,11 +950,11 @@
950
950
  "integrity": "sha512-n4AWXkzMA4Pv4nam+dTu7PHgDQtMwaAF2MalOWF323zGvYKS/gZJY+7efJq0DLP783iTfjvYT879EHhCrfvEXA=="
951
951
  },
952
952
  "node_modules/@forge/cli-shared": {
953
- "version": "3.23.4-next.0-experimental-326ff96",
954
- "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-3.23.4-next.0-experimental-326ff96.tgz",
955
- "integrity": "sha512-dK2OQ1nQ+m5HM/HS7cZmWO5hHfXJhDnwNo+bKGw+xgFAb1KlDc5p3k890arPy731064sIPuVmkLaRSFVIS93ww==",
953
+ "version": "3.23.4-next.2",
954
+ "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-3.23.4-next.2.tgz",
955
+ "integrity": "sha512-FKKkv716GE4dBuxM5bzZB5s8NGs2hp9QR3g+vmdLr9dIBxKK0IjZ5o90RSiDURdCTuNvyzNWKSRHe9jOmlJD9Q==",
956
956
  "dependencies": {
957
- "@forge/manifest": "5.6.0-next.0-experimental-326ff96",
957
+ "@forge/manifest": "6.0.0-next.1",
958
958
  "@forge/util": "1.4.1",
959
959
  "@sentry/node": "7.100.1",
960
960
  "adm-zip": "^0.5.10",
@@ -988,9 +988,9 @@
988
988
  }
989
989
  },
990
990
  "node_modules/@forge/csp": {
991
- "version": "3.1.6-experimental-326ff96",
992
- "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-3.1.6-experimental-326ff96.tgz",
993
- "integrity": "sha512-5T7g9nMtiu72EDbS7rqhE2G/0pux4GxQYsOCWANJmho5jMLcb9bkkIFtNvheUOildPceJeJX/CcKBVuVXBB/iw==",
991
+ "version": "3.1.6",
992
+ "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-3.1.6.tgz",
993
+ "integrity": "sha512-sc9HqtMemMJAFIlWaHeF7ZeUdROD/jPVyUL+CLT14OWTuvpG4fCg+n+l8ebo8EwvZeJ5jCjEyZrVcH+QOqrDyg==",
994
994
  "dependencies": {
995
995
  "cheerio": "^0.22.0",
996
996
  "content-security-policy-parser": "^0.4.1"
@@ -1005,13 +1005,13 @@
1005
1005
  }
1006
1006
  },
1007
1007
  "node_modules/@forge/lint": {
1008
- "version": "4.0.6-next.0-experimental-326ff96",
1009
- "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-4.0.6-next.0-experimental-326ff96.tgz",
1010
- "integrity": "sha512-Z4w7HBryxlJVDpJ5VMFnF906tXIO6degYctPq4TDGXBR4FCeTKs209G3jJvnmwDFM6yxYCGks3LY4dBys4N2pQ==",
1008
+ "version": "4.0.6-next.2",
1009
+ "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-4.0.6-next.2.tgz",
1010
+ "integrity": "sha512-B/HiKbvW7bOtMuKaVuxZksTMGEkhXE387KgiXajxFX/qJgevKU5YcguGSEJ62PzQwplv07xU51upU88Y1x5ybg==",
1011
1011
  "dependencies": {
1012
- "@forge/cli-shared": "3.23.4-next.0-experimental-326ff96",
1012
+ "@forge/cli-shared": "3.23.4-next.2",
1013
1013
  "@forge/egress": "1.2.13",
1014
- "@forge/manifest": "5.6.0-next.0-experimental-326ff96",
1014
+ "@forge/manifest": "6.0.0-next.1",
1015
1015
  "@typescript-eslint/typescript-estree": "^5.62.0",
1016
1016
  "array.prototype.flatmap": "^1.3.2",
1017
1017
  "atlassian-openapi": "^1.0.18",
@@ -1020,9 +1020,9 @@
1020
1020
  }
1021
1021
  },
1022
1022
  "node_modules/@forge/manifest": {
1023
- "version": "5.6.0-next.0-experimental-326ff96",
1024
- "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-5.6.0-next.0-experimental-326ff96.tgz",
1025
- "integrity": "sha512-uAp5dknNPPGZwmWpaL2D3rvwpbkEZziXWG0AKa5rtqIIBpgPjiA4HDQUTeWhQpCMAofa12J1dkXubV4LAZOjVA==",
1023
+ "version": "6.0.0-next.1",
1024
+ "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-6.0.0-next.1.tgz",
1025
+ "integrity": "sha512-sJsVbWZNpU/xOUYdddaJZ2wQLNLJ/BdRQUhGagoxG6Z3Fg/pdz7XNXFnrYkREqnSG+B3VVTkTDaeUxOULydBDA==",
1026
1026
  "dependencies": {
1027
1027
  "@forge/util": "1.4.1",
1028
1028
  "ajv": "^8.12.0",
@@ -1037,12 +1037,12 @@
1037
1037
  }
1038
1038
  },
1039
1039
  "node_modules/@forge/node-runtime": {
1040
- "version": "0.7.0",
1041
- "resolved": "https://registry.npmjs.org/@forge/node-runtime/-/node-runtime-0.7.0.tgz",
1042
- "integrity": "sha512-DsAmDjoXFo1aavVpQVme47Iu7wzQGoHCgFZNGNYwBgCG2LxgVuo6bdvB5MkjIIfStU2hrp1oo6nnT4OZHpjlVw==",
1040
+ "version": "0.7.1-next.0",
1041
+ "resolved": "https://registry.npmjs.org/@forge/node-runtime/-/node-runtime-0.7.1-next.0.tgz",
1042
+ "integrity": "sha512-APfowGK96FR0/AcWttUF6CZu5voPiJDZoiLWX7r7DTGWHD6mmHfBxDWvv43BB9gHt12Lom5ail4qD/Ha1MGBqw==",
1043
1043
  "dependencies": {
1044
1044
  "@forge/api": "3.2.0",
1045
- "@forge/runtime": "5.4.0",
1045
+ "@forge/runtime": "5.4.1-next.0",
1046
1046
  "uuid": "^9.0.1"
1047
1047
  }
1048
1048
  },
@@ -1065,9 +1065,9 @@
1065
1065
  "integrity": "sha512-n4AWXkzMA4Pv4nam+dTu7PHgDQtMwaAF2MalOWF323zGvYKS/gZJY+7efJq0DLP783iTfjvYT879EHhCrfvEXA=="
1066
1066
  },
1067
1067
  "node_modules/@forge/runtime": {
1068
- "version": "5.4.0",
1069
- "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-5.4.0.tgz",
1070
- "integrity": "sha512-OdOznknyxmGnCnb3CN6Fa1pukwUsKfqAbPI7jCWJ/4jEIT5RpStKPBKuJ30o4my6SUiHGz+OdME0kjWvwSvlTA==",
1068
+ "version": "5.4.1-next.0",
1069
+ "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-5.4.1-next.0.tgz",
1070
+ "integrity": "sha512-Tiv4I3eOzYt1HV85INkFFlC7dKdpnGoiv4++dCAyif9/LDSAkf3ssWN8sLcIYadNoz/wQoUGITt6voniAhtQIg==",
1071
1071
  "dependencies": {
1072
1072
  "@forge/util": "1.4.1",
1073
1073
  "fp-ts": "^2.16.2",
@@ -1080,14 +1080,14 @@
1080
1080
  }
1081
1081
  },
1082
1082
  "node_modules/@forge/tunnel": {
1083
- "version": "4.0.4-next.0-experimental-326ff96",
1084
- "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-4.0.4-next.0-experimental-326ff96.tgz",
1085
- "integrity": "sha512-zsJn8Ks9EkhPIF5HSgwF21nl1lod6oQjd3PrY0fo8+Dsh8TJNy53oerC9QxEt6wrrlOiwDQzgIUT0j4J7UJzqg==",
1086
- "dependencies": {
1087
- "@forge/bundler": "4.15.4-next.0-experimental-326ff96",
1088
- "@forge/cli-shared": "3.23.4-next.0-experimental-326ff96",
1089
- "@forge/csp": "3.1.6-experimental-326ff96",
1090
- "@forge/runtime": "5.4.0",
1083
+ "version": "4.0.4-next.3",
1084
+ "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-4.0.4-next.3.tgz",
1085
+ "integrity": "sha512-JmSScbuTqCstg3BOZcHHd6Z3sen9d0n3t0LAPn40GNzoneXuELFAUPfAWsgcD9mm/WPjH61JCcjpAmb7SCehvw==",
1086
+ "dependencies": {
1087
+ "@forge/bundler": "4.15.4-next.3",
1088
+ "@forge/cli-shared": "3.23.4-next.2",
1089
+ "@forge/csp": "3.1.6",
1090
+ "@forge/runtime": "5.4.1-next.0",
1091
1091
  "express": "^4.18.2",
1092
1092
  "express-intercept": "^1.1.0",
1093
1093
  "http-proxy-middleware": "^2.0.6",
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/autocomplete-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,EAAE,EAAmB,MAAM,mBAAmB,CAAC;AAK9D,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAQD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,MAAyB,GAAG,IAAI,CAInF;AAED,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB7C"}
1
+ {"version":3,"file":"autocomplete-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/autocomplete-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,EAAE,EAAsC,MAAM,mBAAmB,CAAC;AAIjF,oBAAY,QAAQ;IAClB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAQD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,MAAyB,GAAG,IAAI,CAInF;AAED,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB7C"}
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
5
5
  const semver_1 = tslib_1.__importDefault(require("semver"));
6
6
  const cli_shared_1 = require("@forge/cli-shared");
7
7
  const autocomplete_1 = require("../../autocomplete");
8
- const assertUnreachable_1 = require("./assertUnreachable");
9
8
  const getNodeVersion_1 = require("./getNodeVersion");
10
9
  var Argument;
11
10
  (function (Argument) {
@@ -47,7 +46,7 @@ class AutocompleteController {
47
46
  autocomplete_1.autocomplete.cleanupShellInitFile();
48
47
  }
49
48
  else {
50
- (0, assertUnreachable_1.assertUnreachable)(arg);
49
+ (0, cli_shared_1.assertUnreachable)(arg);
51
50
  }
52
51
  }
53
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"register-app-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-app-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EAEtB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAatD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrD;AAaD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAC1B,OAAO,CAQT;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY7E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,aAAa,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,GACnD,OAAO,CAAC,sBAAsB,CAAC,CA6IjC;AA6CD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAGlD"}
1
+ {"version":3,"file":"register-app-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-app-commands.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EAEtB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAYtD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrD;AAaD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAC1B,OAAO,CAQT;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY7E;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,aAAa,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,kBAAkB,EAAE,kBAAkB,EACtC,IAAI,EAAE,MAAM,EACZ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,GACnD,OAAO,CAAC,sBAAsB,CAAC,CAqIjC;AA6CD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAGlD"}
@@ -8,7 +8,6 @@ const cli_shared_1 = require("@forge/cli-shared");
8
8
  var TemplateCategory;
9
9
  (function (TemplateCategory) {
10
10
  TemplateCategory["SHOW_ALL"] = "Show All";
11
- TemplateCategory["AI"] = "AI";
12
11
  TemplateCategory["CUSTOM_UI"] = "Custom UI";
13
12
  TemplateCategory["BACKEND"] = "Triggers and Validators";
14
13
  TemplateCategory["UI_KIT"] = "UI kit";
@@ -77,17 +76,12 @@ async function createCommandHandler(ui, createAppCommand, featureFlagService, na
77
76
  ui.info(cli_shared_1.Text.create.overviewTemplates);
78
77
  const templates = await ui.displayTemporaryMessage(() => createAppCommand.getAvailableTemplates(), cli_shared_1.Text.create.waitTemplates);
79
78
  const enableCSUIK = await featureFlagService.readFlag('forge-cli-enable-csuik');
80
- const enableAIModules = await featureFlagService.shouldEnableAiModules();
81
- const type = await ui.promptForList(cli_shared_1.Text.create.promptCategory, Object.values(TemplateCategory)
82
- .filter((category) => enableCSUIK || category !== TemplateCategory.UI_KIT_2)
83
- .filter((category) => enableAIModules || category !== TemplateCategory.AI));
79
+ const type = await ui.promptForList(cli_shared_1.Text.create.promptCategory, Object.values(TemplateCategory).filter((category) => enableCSUIK || category !== TemplateCategory.UI_KIT_2));
84
80
  const filteredTemplates = type === TemplateCategory.SHOW_ALL
85
81
  ? templates
86
82
  : templates
87
83
  .filter((name) => {
88
84
  switch (type) {
89
- case TemplateCategory.AI:
90
- return name.startsWith('ai-');
91
85
  case TemplateCategory.BACKEND:
92
86
  return (!name.includes('ui-kit') &&
93
87
  !name.includes('csuik') &&
@@ -103,8 +97,7 @@ async function createCommandHandler(ui, createAppCommand, featureFlagService, na
103
97
  })
104
98
  .map((name) => name.replace('-ui-kit', '').replace('-custom-ui', '').replace('-csuik', ''));
105
99
  const enableCategoriseTemplateByProduct = await featureFlagService.readFlag('forge-cli-enable-categorise-templates-by-product_e9fzn');
106
- if (enableCategoriseTemplateByProduct &&
107
- ![TemplateCategory.SHOW_ALL, TemplateCategory.AI].includes(type)) {
100
+ if (enableCategoriseTemplateByProduct && type !== TemplateCategory.SHOW_ALL) {
108
101
  const productList = PRODUCT_CATEGORY.filter((productName) => productName === 'show-all' ||
109
102
  filteredTemplates.some((template) => templateMatchesProduct(productName, template, PRODUCT_CATEGORY)));
110
103
  if (productList.length > 1) {
@@ -187,7 +187,7 @@ class InstallationsGraphqlClient {
187
187
  await this.monitorAppInstallOrUpgrade(taskId);
188
188
  }
189
189
  async monitorAppInstallOrUpgrade(taskId) {
190
- var _a, _b, _c, _d;
190
+ var _a, _b, _c, _d, _e;
191
191
  let status = cli_shared_1.AppTaskState.Pending;
192
192
  while (status !== cli_shared_1.AppTaskState.Complete) {
193
193
  const { state, errors, requestId } = await this.getAppInstallationTask(taskId);
@@ -199,8 +199,8 @@ class InstallationsGraphqlClient {
199
199
  const isUserError = statusCode && statusCode >= 400 && statusCode < 500 ? true : false;
200
200
  const code = (_c = (_b = error === null || error === void 0 ? void 0 : error.extensions) === null || _b === void 0 ? void 0 : _b.errorType) !== null && _c !== void 0 ? _c : undefined;
201
201
  throw new InstallationRequestFailedError(isUserError, code, shouldDisplayHarmonizedAppInstallationErrors
202
- ? (0, harmonized_app_installation_errors_1.expandHarmonizedAppInstallationError)(code)
203
- : (_d = error === null || error === void 0 ? void 0 : error.message) !== null && _d !== void 0 ? _d : undefined, requestId);
202
+ ? (0, harmonized_app_installation_errors_1.expandHarmonizedAppInstallationError)(code, (_d = error === null || error === void 0 ? void 0 : error.message) !== null && _d !== void 0 ? _d : undefined)
203
+ : (_e = error === null || error === void 0 ? void 0 : error.message) !== null && _e !== void 0 ? _e : undefined, requestId);
204
204
  }
205
205
  if (status !== cli_shared_1.AppTaskState.Complete)
206
206
  await this.pause(exports.UNINSTALLATION_EVENT_POLL_INTERVAL);
@@ -1,8 +1,7 @@
1
1
  export declare enum ApiErrorCode {
2
- CONCURRENT_SYNC = "CONNECT_PLUGIN_CONCURRENT_PERMS_SYNC"
2
+ CONCURRENT_SYNC = "CONNECT_PLUGIN_CONCURRENT_PERMS_SYNC",
3
+ MACRO_COLLISION = "CONNECT_PLUGIN_MACRO_COLLISION",
4
+ FAILED_DESCRIPTOR_VALIDATION = "CONNECT_PLUGIN_FAILED_DESCRIPTOR_VALIDATION"
3
5
  }
4
- export declare const KNOWN_HARMONIZED_APP_INSTALLATION_ERRORS: {
5
- CONNECT_PLUGIN_CONCURRENT_PERMS_SYNC: string;
6
- };
7
- export declare const expandHarmonizedAppInstallationError: (errorCode: string | undefined) => string | undefined;
6
+ export declare const expandHarmonizedAppInstallationError: (errorCode: string | undefined, errorMessage: string | undefined) => string | undefined;
8
7
  //# sourceMappingURL=harmonized-app-installation-errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmonized-app-installation-errors.d.ts","sourceRoot":"","sources":["../../../src/installations/harmonized-apps/harmonized-app-installation-errors.ts"],"names":[],"mappings":"AAEA,oBAAY,YAAY;IAGtB,eAAe,yCAAyC;CACzD;AAED,eAAO,MAAM,wCAAwC;;CAEpD,CAAC;AAMF,eAAO,MAAM,oCAAoC,cAAe,MAAM,GAAG,SAAS,uBAMjF,CAAC"}
1
+ {"version":3,"file":"harmonized-app-installation-errors.d.ts","sourceRoot":"","sources":["../../../src/installations/harmonized-apps/harmonized-app-installation-errors.ts"],"names":[],"mappings":"AAEA,oBAAY,YAAY;IAGtB,eAAe,yCAAyC;IACxD,eAAe,mCAAmC;IAClD,4BAA4B,gDAAgD;CAC7E;AAcD,eAAO,MAAM,oCAAoC,cACpC,MAAM,GAAG,SAAS,gBACf,MAAM,GAAG,SAAS,uBAuBjC,CAAC"}
@@ -1,18 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expandHarmonizedAppInstallationError = exports.KNOWN_HARMONIZED_APP_INSTALLATION_ERRORS = exports.ApiErrorCode = void 0;
3
+ exports.expandHarmonizedAppInstallationError = exports.ApiErrorCode = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
5
  var ApiErrorCode;
6
6
  (function (ApiErrorCode) {
7
7
  ApiErrorCode["CONCURRENT_SYNC"] = "CONNECT_PLUGIN_CONCURRENT_PERMS_SYNC";
8
+ ApiErrorCode["MACRO_COLLISION"] = "CONNECT_PLUGIN_MACRO_COLLISION";
9
+ ApiErrorCode["FAILED_DESCRIPTOR_VALIDATION"] = "CONNECT_PLUGIN_FAILED_DESCRIPTOR_VALIDATION";
8
10
  })(ApiErrorCode = exports.ApiErrorCode || (exports.ApiErrorCode = {}));
9
- exports.KNOWN_HARMONIZED_APP_INSTALLATION_ERRORS = {
10
- [ApiErrorCode.CONCURRENT_SYNC]: cli_shared_1.Text.harmonization.installation.errors.concurrentSync
11
- };
12
- const expandHarmonizedAppInstallationError = (errorCode) => {
13
- if (errorCode) {
14
- return exports.KNOWN_HARMONIZED_APP_INSTALLATION_ERRORS[errorCode];
11
+ function isApiErrorCode(errorCode) {
12
+ if (!errorCode) {
13
+ return false;
14
+ }
15
+ return Object.values(ApiErrorCode).includes(errorCode);
16
+ }
17
+ const expandHarmonizedAppInstallationError = (errorCode, errorMessage) => {
18
+ if (!isApiErrorCode(errorCode)) {
19
+ return errorMessage;
20
+ }
21
+ switch (errorCode) {
22
+ case ApiErrorCode.CONCURRENT_SYNC:
23
+ return cli_shared_1.Text.harmonization.installation.errors.concurrentSync;
24
+ case ApiErrorCode.MACRO_COLLISION:
25
+ case ApiErrorCode.FAILED_DESCRIPTOR_VALIDATION:
26
+ if (errorMessage && errorMessage.length > 0) {
27
+ return errorMessage;
28
+ }
29
+ return errorCode === ApiErrorCode.MACRO_COLLISION
30
+ ? cli_shared_1.Text.harmonization.installation.errors.placeholderMacroCollision
31
+ : cli_shared_1.Text.harmonization.installation.errors.placeholderFailedDescriptorValidation;
32
+ default:
33
+ (0, cli_shared_1.assertUnreachable)(errorCode);
15
34
  }
16
- return undefined;
17
35
  };
18
36
  exports.expandHarmonizedAppInstallationError = expandHarmonizedAppInstallationError;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "7.0.4-next.0-experimental-326ff96",
3
+ "version": "7.0.4-next.3",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -18,14 +18,14 @@
18
18
  "postinstall": "node -e \"fs.existsSync('./out/bin/postinstall.js') && require('./out/bin/postinstall.js')\""
19
19
  },
20
20
  "dependencies": {
21
- "@forge/bundler": "4.15.4-next.0-experimental-326ff96",
22
- "@forge/cli-shared": "3.23.4-next.0-experimental-326ff96",
21
+ "@forge/bundler": "4.15.4-next.3",
22
+ "@forge/cli-shared": "3.23.4-next.2",
23
23
  "@forge/egress": "1.2.13",
24
- "@forge/lint": "4.0.6-next.0-experimental-326ff96",
25
- "@forge/manifest": "5.6.0-next.0-experimental-326ff96",
26
- "@forge/node-runtime": "0.7.0",
27
- "@forge/runtime": "5.4.0",
28
- "@forge/tunnel": "4.0.4-next.0-experimental-326ff96",
24
+ "@forge/lint": "4.0.6-next.2",
25
+ "@forge/manifest": "6.0.0-next.1",
26
+ "@forge/node-runtime": "0.7.1-next.0",
27
+ "@forge/runtime": "5.4.1-next.0",
28
+ "@forge/tunnel": "4.0.4-next.3",
29
29
  "@forge/util": "1.4.1",
30
30
  "@sentry/node": "7.100.1",
31
31
  "ajv": "^8.12.0",
@@ -1,2 +0,0 @@
1
- export declare function assertUnreachable(x: never): never;
2
- //# sourceMappingURL=assertUnreachable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assertUnreachable.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/assertUnreachable.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEjD"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertUnreachable = void 0;
4
- function assertUnreachable(x) {
5
- throw new Error("Didn't expect to get here");
6
- }
7
- exports.assertUnreachable = assertUnreachable;