@forge/cli 12.7.0-next.5 → 12.7.1-next.9-experimental-44e92a2

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 (65) hide show
  1. package/CHANGELOG.md +249 -0
  2. package/npm-shrinkwrap.json +55 -64
  3. package/out/autocomplete/autocomplete-config.json +1 -1
  4. package/out/command-line/controller/install-controller.d.ts +3 -1
  5. package/out/command-line/controller/install-controller.d.ts.map +1 -1
  6. package/out/command-line/controller/install-controller.js +38 -16
  7. package/out/command-line/controller/install-controller.js.map +1 -1
  8. package/out/command-line/dependency-injection.d.ts.map +1 -1
  9. package/out/command-line/dependency-injection.js +1 -1
  10. package/out/command-line/dependency-injection.js.map +1 -1
  11. package/out/command-line/index.d.ts.map +1 -1
  12. package/out/command-line/index.js +3 -1
  13. package/out/command-line/index.js.map +1 -1
  14. package/out/command-line/register-app-commands.js +1 -1
  15. package/out/command-line/register-app-commands.js.map +1 -1
  16. package/out/command-line/register-containers-commands.d.ts.map +1 -1
  17. package/out/command-line/register-containers-commands.js +10 -69
  18. package/out/command-line/register-containers-commands.js.map +1 -1
  19. package/out/command-line/register-installation-commands.d.ts.map +1 -1
  20. package/out/command-line/register-installation-commands.js +3 -2
  21. package/out/command-line/register-installation-commands.js.map +1 -1
  22. package/out/command-line/register-repositories-commands.d.ts +3 -0
  23. package/out/command-line/register-repositories-commands.d.ts.map +1 -0
  24. package/out/command-line/register-repositories-commands.js +75 -0
  25. package/out/command-line/register-repositories-commands.js.map +1 -0
  26. package/out/command-line/register-tunnel-commands.d.ts +1 -1
  27. package/out/command-line/register-tunnel-commands.d.ts.map +1 -1
  28. package/out/command-line/register-tunnel-commands.js +10 -4
  29. package/out/command-line/register-tunnel-commands.js.map +1 -1
  30. package/out/command-line/uninstall-command-helpers.d.ts +1 -0
  31. package/out/command-line/uninstall-command-helpers.d.ts.map +1 -1
  32. package/out/command-line/uninstall-command-helpers.js +16 -1
  33. package/out/command-line/uninstall-command-helpers.js.map +1 -1
  34. package/out/command-line/view/install-view.d.ts +4 -4
  35. package/out/command-line/view/install-view.d.ts.map +1 -1
  36. package/out/command-line/view/install-view.js +5 -5
  37. package/out/command-line/view/install-view.js.map +1 -1
  38. package/out/custom-scopes/types.d.ts +2 -0
  39. package/out/custom-scopes/types.d.ts.map +1 -0
  40. package/out/custom-scopes/types.js +3 -0
  41. package/out/custom-scopes/types.js.map +1 -0
  42. package/out/custom-scopes/validate/index.d.ts +8 -0
  43. package/out/custom-scopes/validate/index.d.ts.map +1 -0
  44. package/out/custom-scopes/validate/index.js +24 -0
  45. package/out/custom-scopes/validate/index.js.map +1 -0
  46. package/out/custom-scopes/validate/schema.json +48 -0
  47. package/out/deploy/deployer/deployer.d.ts +3 -0
  48. package/out/deploy/deployer/deployer.d.ts.map +1 -1
  49. package/out/deploy/deployer/deployer.js +11 -2
  50. package/out/deploy/deployer/deployer.js.map +1 -1
  51. package/out/installations/graphql-client.d.ts +4 -1
  52. package/out/installations/graphql-client.d.ts.map +1 -1
  53. package/out/installations/graphql-client.js +24 -7
  54. package/out/installations/graphql-client.js.map +1 -1
  55. package/out/installations/install-app-site.d.ts +1 -0
  56. package/out/installations/install-app-site.d.ts.map +1 -1
  57. package/out/installations/install-app-site.js.map +1 -1
  58. package/out/service/installation-service.d.ts +2 -2
  59. package/out/service/installation-service.d.ts.map +1 -1
  60. package/out/service/installation-service.js +18 -6
  61. package/out/service/installation-service.js.map +1 -1
  62. package/out/service/tunnel-service.d.ts.map +1 -1
  63. package/out/service/tunnel-service.js +3 -1
  64. package/out/service/tunnel-service.js.map +1 -1
  65. package/package.json +16 -12
package/CHANGELOG.md CHANGED
@@ -1,5 +1,254 @@
1
1
  # @forge/cli
2
2
 
3
+ ## 12.7.1-next.9-experimental-44e92a2
4
+
5
+ ### Patch Changes
6
+
7
+ - db1aa23: Map more deploy errors with useful message and as user error
8
+ - f751b9b:
9
+ - 9cb69da: Enable force forge container deletion
10
+ - 94243f1: Split development and contribution guidelines
11
+ - 8183db5: added cli command to hit decoupled state endpoint
12
+ - Updated dependencies [b3792e4]
13
+ - Updated dependencies [f751b9b]
14
+ - Updated dependencies [9cb69da]
15
+ - Updated dependencies [0ea6722]
16
+ - Updated dependencies [4718346]
17
+ - Updated dependencies [94243f1]
18
+ - Updated dependencies [d23410f]
19
+ - Updated dependencies [8183db5]
20
+ - Updated dependencies [0ef937d]
21
+ - Updated dependencies [dcd46a4]
22
+ - @forge/manifest@10.8.0-next.4-experimental-44e92a2
23
+ - @forge/cli-shared@8.8.1-next.4-experimental-44e92a2
24
+ - @forge/bundler@6.1.10-next.8-experimental-44e92a2
25
+ - @forge/egress@2.1.1-next.0-experimental-44e92a2
26
+ - @forge/lint@5.11.6-next.8-experimental-44e92a2
27
+ - @forge/runtime@6.1.1-next.0-experimental-44e92a2
28
+ - @forge/util@2.0.1-next.0-experimental-44e92a2
29
+ - @forge/tunnel@6.3.1-next.8-experimental-44e92a2
30
+
31
+ ## 12.7.1-next.9
32
+
33
+ ### Patch Changes
34
+
35
+ - 9cb69da: Enable force forge container deletion
36
+ - Updated dependencies [9cb69da]
37
+ - Updated dependencies [dcd46a4]
38
+ - @forge/cli-shared@8.8.1-next.4
39
+ - @forge/manifest@10.8.0-next.4
40
+ - @forge/bundler@6.1.10-next.8
41
+ - @forge/lint@5.11.6-next.8
42
+ - @forge/tunnel@6.3.1-next.8
43
+
44
+ ## 12.7.1-next.8
45
+
46
+ ### Patch Changes
47
+
48
+ - @forge/lint@5.11.6-next.7
49
+ - @forge/tunnel@6.3.1-next.7
50
+ - @forge/bundler@6.1.10-next.7
51
+
52
+ ## 12.7.1-next.7
53
+
54
+ ### Patch Changes
55
+
56
+ - f751b9b:
57
+ - Updated dependencies [f751b9b]
58
+ - Updated dependencies [0ef937d]
59
+ - @forge/cli-shared@8.8.1-next.3
60
+ - @forge/manifest@10.8.0-next.3
61
+ - @forge/bundler@6.1.10-next.6
62
+ - @forge/lint@5.11.6-next.6
63
+ - @forge/tunnel@6.3.1-next.6
64
+
65
+ ## 12.7.1-next.6
66
+
67
+ ### Patch Changes
68
+
69
+ - db1aa23: Map more deploy errors with useful message and as user error
70
+
71
+ ## 12.7.1-next.5
72
+
73
+ ### Patch Changes
74
+
75
+ - Updated dependencies [b3792e4]
76
+ - @forge/manifest@10.8.0-next.2
77
+ - @forge/bundler@6.1.10-next.5
78
+ - @forge/cli-shared@8.8.1-next.2
79
+ - @forge/lint@5.11.6-next.5
80
+ - @forge/tunnel@6.3.1-next.5
81
+
82
+ ## 12.7.1-next.4
83
+
84
+ ### Patch Changes
85
+
86
+ - @forge/lint@5.11.6-next.4
87
+ - @forge/tunnel@6.3.1-next.4
88
+ - @forge/bundler@6.1.10-next.4
89
+
90
+ ## 12.7.1-next.3
91
+
92
+ ### Patch Changes
93
+
94
+ - @forge/lint@5.11.6-next.3
95
+ - @forge/tunnel@6.3.1-next.3
96
+ - @forge/bundler@6.1.10-next.3
97
+
98
+ ## 12.7.1-next.2
99
+
100
+ ### Patch Changes
101
+
102
+ - @forge/lint@5.11.6-next.2
103
+ - @forge/tunnel@6.3.1-next.2
104
+ - @forge/bundler@6.1.10-next.2
105
+
106
+ ## 12.7.1-next.1
107
+
108
+ ### Patch Changes
109
+
110
+ - Updated dependencies [0ea6722]
111
+ - Updated dependencies [d23410f]
112
+ - @forge/manifest@10.8.0-next.1
113
+ - @forge/lint@5.11.6-next.1
114
+ - @forge/bundler@6.1.10-next.1
115
+ - @forge/cli-shared@8.8.1-next.1
116
+ - @forge/tunnel@6.3.1-next.1
117
+
118
+ ## 12.7.1-next.0
119
+
120
+ ### Patch Changes
121
+
122
+ - 94243f1: Split development and contribution guidelines
123
+ - Updated dependencies [94243f1]
124
+ - @forge/bundler@6.1.10-next.0
125
+ - @forge/cli-shared@8.8.1-next.0
126
+ - @forge/egress@2.1.1-next.0
127
+ - @forge/lint@5.11.6-next.0
128
+ - @forge/manifest@10.7.1-next.0
129
+ - @forge/runtime@6.1.1-next.0
130
+ - @forge/util@2.0.1-next.0
131
+ - @forge/tunnel@6.3.1-next.0
132
+
133
+ ## 12.7.0
134
+
135
+ ### Minor Changes
136
+
137
+ - d3008b5: Create new commands for listing repositories and images
138
+ - 4947176: Adding self managed tunnel support
139
+ - 8ff224b: Add automatic spinning up of docker compose stacks for containers when tunneling
140
+ - 52199aa: Udpate Label From Automation (EAP) to Automation (Preview)
141
+
142
+ ### Patch Changes
143
+
144
+ - a1c8e19:
145
+ - 3467178: fix filtering
146
+ - Updated dependencies [b1f257c]
147
+ - Updated dependencies [2ac3cde]
148
+ - Updated dependencies [96d7a67]
149
+ - Updated dependencies [d3008b5]
150
+ - Updated dependencies [4947176]
151
+ - Updated dependencies [5143f1b]
152
+ - Updated dependencies [90ee56f]
153
+ - Updated dependencies [8ff224b]
154
+ - Updated dependencies [a1c8e19]
155
+ - Updated dependencies [e65918b]
156
+ - Updated dependencies [ec8000d]
157
+ - Updated dependencies [4afc4fb]
158
+ - Updated dependencies [873a240]
159
+ - Updated dependencies [f5d3945]
160
+ - @forge/manifest@10.7.0
161
+ - @forge/cli-shared@8.8.0
162
+ - @forge/tunnel@6.3.0
163
+ - @forge/egress@2.1.0
164
+ - @forge/runtime@6.1.0
165
+ - @forge/bundler@6.1.9
166
+ - @forge/lint@5.11.5
167
+
168
+ ## 12.7.0-next.12
169
+
170
+ ### Patch Changes
171
+
172
+ - 3467178: fix filtering
173
+
174
+ ## 12.7.0-next.11
175
+
176
+ ### Patch Changes
177
+
178
+ - Updated dependencies [b1f257c]
179
+ - @forge/manifest@10.7.0-next.5
180
+ - @forge/bundler@6.1.9-next.11
181
+ - @forge/cli-shared@8.8.0-next.9
182
+ - @forge/lint@5.11.5-next.11
183
+ - @forge/tunnel@6.3.0-next.11
184
+
185
+ ## 12.7.0-next.10
186
+
187
+ ### Minor Changes
188
+
189
+ - d3008b5: Create new commands for listing repositories and images
190
+
191
+ ### Patch Changes
192
+
193
+ - Updated dependencies [d3008b5]
194
+ - @forge/cli-shared@8.8.0-next.8
195
+ - @forge/bundler@6.1.9-next.10
196
+ - @forge/lint@5.11.5-next.10
197
+ - @forge/tunnel@6.3.0-next.10
198
+
199
+ ## 12.7.0-next.9
200
+
201
+ ### Patch Changes
202
+
203
+ - a1c8e19:
204
+ - Updated dependencies [a1c8e19]
205
+ - @forge/cli-shared@8.8.0-next.7
206
+ - @forge/bundler@6.1.9-next.9
207
+ - @forge/lint@5.11.5-next.9
208
+ - @forge/tunnel@6.3.0-next.9
209
+
210
+ ## 12.7.0-next.8
211
+
212
+ ### Minor Changes
213
+
214
+ - 4947176: Adding self managed tunnel support
215
+
216
+ ### Patch Changes
217
+
218
+ - Updated dependencies [4947176]
219
+ - Updated dependencies [ec8000d]
220
+ - @forge/cli-shared@8.8.0-next.6
221
+ - @forge/tunnel@6.3.0-next.8
222
+ - @forge/manifest@10.7.0-next.4
223
+ - @forge/bundler@6.1.9-next.8
224
+ - @forge/lint@5.11.5-next.8
225
+
226
+ ## 12.7.0-next.7
227
+
228
+ ### Patch Changes
229
+
230
+ - Updated dependencies [2ac3cde]
231
+ - @forge/manifest@10.7.0-next.3
232
+ - @forge/bundler@6.1.9-next.7
233
+ - @forge/cli-shared@8.8.0-next.5
234
+ - @forge/lint@5.11.5-next.7
235
+ - @forge/tunnel@6.3.0-next.7
236
+
237
+ ## 12.7.0-next.6
238
+
239
+ ### Minor Changes
240
+
241
+ - 52199aa: Udpate Label From Automation (EAP) to Automation (Preview)
242
+
243
+ ### Patch Changes
244
+
245
+ - Updated dependencies [4afc4fb]
246
+ - @forge/manifest@10.7.0-next.2
247
+ - @forge/bundler@6.1.9-next.6
248
+ - @forge/cli-shared@8.8.0-next.4
249
+ - @forge/lint@5.11.5-next.6
250
+ - @forge/tunnel@6.3.0-next.6
251
+
3
252
  ## 12.7.0-next.5
4
253
 
5
254
  ### Patch Changes
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "12.7.0-next.5",
3
+ "version": "12.7.1-next.9-experimental-44e92a2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@forge/cli",
9
- "version": "12.7.0-next.5",
9
+ "version": "12.7.1-next.9-experimental-44e92a2",
10
10
  "hasInstallScript": true,
11
11
  "license": "SEE LICENSE IN LICENSE.txt",
12
12
  "dependencies": {
13
- "@forge/bundler": "6.1.9-next.5",
14
- "@forge/cli-shared": "8.8.0-next.3",
15
- "@forge/egress": "2.1.0-next.0",
13
+ "@forge/bundler": "6.1.10-next.8-experimental-44e92a2",
14
+ "@forge/cli-shared": "8.8.1-next.4-experimental-44e92a2",
15
+ "@forge/egress": "2.1.1-next.0-experimental-44e92a2",
16
16
  "@forge/i18n": "0.0.7",
17
- "@forge/lint": "5.11.5-next.5",
18
- "@forge/manifest": "10.7.0-next.1",
19
- "@forge/runtime": "6.1.0-next.0",
20
- "@forge/tunnel": "6.3.0-next.5",
21
- "@forge/util": "2.0.0",
17
+ "@forge/lint": "5.11.6-next.8-experimental-44e92a2",
18
+ "@forge/manifest": "10.8.0-next.4-experimental-44e92a2",
19
+ "@forge/runtime": "6.1.1-next.0-experimental-44e92a2",
20
+ "@forge/tunnel": "6.3.1-next.8-experimental-44e92a2",
21
+ "@forge/util": "2.0.1-next.0-experimental-44e92a2",
22
22
  "@sentry/node": "7.106.0",
23
23
  "ajv": "^8.12.0",
24
24
  "archiver": "^7.0.1",
@@ -77,6 +77,7 @@
77
77
  "jest-fixtures": "^0.6.0",
78
78
  "jest-matcher-specific-error": "^1.0.0",
79
79
  "jest-when": "^3.6.0",
80
+ "json-schema-to-typescript": "^10.1.5",
80
81
  "jws": "^4.0.0",
81
82
  "memfs": "^4.6.0",
82
83
  "sentry-testkit": "^5.0.10",
@@ -548,9 +549,9 @@
548
549
  }
549
550
  },
550
551
  "node_modules/@forge/bundler": {
551
- "version": "6.1.9-next.5",
552
- "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-6.1.9-next.5.tgz",
553
- "integrity": "sha512-d5fnDwQE/FSJlEUEIvGNPeqc45j+uNgnD1Q6hgRXicy8za7rUepoS0k8KNtguOFP2TzJBRhFOzbPi9X05OVO8A==",
552
+ "version": "6.1.10-next.8-experimental-44e92a2",
553
+ "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-6.1.10-next.8-experimental-44e92a2.tgz",
554
+ "integrity": "sha512-tgvhHZUMgFmEOfYZQDphbFXluwRy4YX/lQ8+q6E7PPYncezczgul88aH7lxVoHVzf2o0I0zmIY8nfJZg8WeerA==",
554
555
  "license": "SEE LICENSE IN LICENSE.txt",
555
556
  "dependencies": {
556
557
  "@babel/core": "^7.24.0",
@@ -562,10 +563,10 @@
562
563
  "@babel/plugin-transform-react-jsx": "^7.23.4",
563
564
  "@babel/traverse": "^7.24.0",
564
565
  "@babel/types": "^7.24.0",
565
- "@forge/cli-shared": "8.8.0-next.3",
566
+ "@forge/cli-shared": "8.8.1-next.4-experimental-44e92a2",
566
567
  "@forge/i18n": "0.0.7",
567
- "@forge/lint": "5.11.5-next.5",
568
- "@forge/manifest": "10.7.0-next.1",
568
+ "@forge/lint": "5.11.6-next.8-experimental-44e92a2",
569
+ "@forge/manifest": "10.8.0-next.4-experimental-44e92a2",
569
570
  "babel-loader": "^8.3.0",
570
571
  "cheerio": "^1.1.0",
571
572
  "cross-spawn": "^7.0.6",
@@ -585,14 +586,14 @@
585
586
  }
586
587
  },
587
588
  "node_modules/@forge/cli-shared": {
588
- "version": "8.8.0-next.3",
589
- "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-8.8.0-next.3.tgz",
590
- "integrity": "sha512-manIC33SqKXYFpZ0XVT9k30M5Z093GJXFzZuSe6feBuD3ocvnPaaUaL0oHU5ybc+uv5Ul8H/OxoBtbGclHvKkQ==",
589
+ "version": "8.8.1-next.4-experimental-44e92a2",
590
+ "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-8.8.1-next.4-experimental-44e92a2.tgz",
591
+ "integrity": "sha512-iGIIhg9aPScjVZ2NmAMqzA/X+3+QBAisL7mmFs5LOA634VxGn/KZHYL/v0ZNnUK6I7RYyoXgwTCQ8o+9hgXRhw==",
591
592
  "license": "SEE LICENSE IN LICENSE.txt",
592
593
  "dependencies": {
593
594
  "@forge/i18n": "0.0.7",
594
- "@forge/manifest": "10.7.0-next.1",
595
- "@forge/util": "2.0.0",
595
+ "@forge/manifest": "10.8.0-next.4-experimental-44e92a2",
596
+ "@forge/util": "2.0.1-next.0-experimental-44e92a2",
596
597
  "@sentry/node": "7.106.0",
597
598
  "adm-zip": "^0.5.10",
598
599
  "array.prototype.flatmap": "^1.3.3",
@@ -624,9 +625,9 @@
624
625
  }
625
626
  },
626
627
  "node_modules/@forge/csp": {
627
- "version": "5.1.1-next.0",
628
- "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-5.1.1-next.0.tgz",
629
- "integrity": "sha512-+zLsxbYj32hHpuhpMnL+QcTPgz0IiTv/HR9A6XCdk6xeZ6a9iUd2m4ddQlF3VGPlj8DQsJDBUAb5/l8BSDInKw==",
628
+ "version": "5.2.0-next.4-experimental-44e92a2",
629
+ "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-5.2.0-next.4-experimental-44e92a2.tgz",
630
+ "integrity": "sha512-mfAn+J5eHWKdZJQT6oHbOb6BcSmBZsNwtyDwhz2mlDRaOalByhtLA+uUF5pOuHaq4lrKWrW7xabuaCqFlIfC7w==",
630
631
  "license": "SEE LICENSE IN LICENSE.txt",
631
632
  "dependencies": {
632
633
  "content-security-policy-parser": "^0.5.0"
@@ -641,9 +642,9 @@
641
642
  }
642
643
  },
643
644
  "node_modules/@forge/egress": {
644
- "version": "2.1.0-next.0",
645
- "resolved": "https://registry.npmjs.org/@forge/egress/-/egress-2.1.0-next.0.tgz",
646
- "integrity": "sha512-44V1ZELmi9ca84wnM+Jl6QZMORo/aaSH5PB2yhfpPg/0O0olovjP+EfTODXvkI4xsfSQV/3FYbq3YXNTTsYneg==",
645
+ "version": "2.1.1-next.0-experimental-44e92a2",
646
+ "resolved": "https://registry.npmjs.org/@forge/egress/-/egress-2.1.1-next.0-experimental-44e92a2.tgz",
647
+ "integrity": "sha512-w/p++dKrNGhgOlDKcQg4dCCt3d/a93onxex20wK6hZkFmxBvxEtI2sbx+JU2nLgaoLUU892pGm477gvukQCcpg==",
647
648
  "license": "SEE LICENSE IN LICENSE.txt",
648
649
  "dependencies": {
649
650
  "minimatch": "^9.0.5"
@@ -659,16 +660,16 @@
659
660
  }
660
661
  },
661
662
  "node_modules/@forge/lint": {
662
- "version": "5.11.5-next.5",
663
- "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-5.11.5-next.5.tgz",
664
- "integrity": "sha512-Kqms6Bj6w0WZ8M1yo5tur7wYT4wUgsi5lMHbMZSPxzpMK7R9CQ4VMlZ+Oi6diDPdzbuRimkeZ3EqrnEoPMfpUg==",
663
+ "version": "5.11.6-next.8-experimental-44e92a2",
664
+ "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-5.11.6-next.8-experimental-44e92a2.tgz",
665
+ "integrity": "sha512-Wkw1/lB1HaHEy24XxCienPNdY3Vt0P80/LHX6HdU/By7tZ7irj3fZLv5yWi0bcWlwPV1xSuWvGqyJkdLPkvWVA==",
665
666
  "license": "SEE LICENSE IN LICENSE.txt",
666
667
  "dependencies": {
667
668
  "@atlassian/atlassian-openapi": "^1.0.6",
668
- "@forge/cli-shared": "8.8.0-next.3",
669
- "@forge/csp": "5.1.1-next.0",
670
- "@forge/egress": "2.1.0-next.0",
671
- "@forge/manifest": "10.7.0-next.1",
669
+ "@forge/cli-shared": "8.8.1-next.4-experimental-44e92a2",
670
+ "@forge/csp": "5.2.0-next.4-experimental-44e92a2",
671
+ "@forge/egress": "2.1.1-next.0-experimental-44e92a2",
672
+ "@forge/manifest": "10.8.0-next.4-experimental-44e92a2",
672
673
  "@typescript-eslint/typescript-estree": "^5.62.0",
673
674
  "array.prototype.flatmap": "^1.3.3",
674
675
  "cross-spawn": "^7.0.6",
@@ -676,9 +677,9 @@
676
677
  }
677
678
  },
678
679
  "node_modules/@forge/manifest": {
679
- "version": "10.7.0-next.1",
680
- "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-10.7.0-next.1.tgz",
681
- "integrity": "sha512-Qh8pjF57HqhJP0yzyN0Rlx/2/s2XVNh5gbG8N9SnNfIZnLLgrVe27QqY8I8HWvbPO9YoVG0FlZkicWonWgdWEQ==",
680
+ "version": "10.8.0-next.4-experimental-44e92a2",
681
+ "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-10.8.0-next.4-experimental-44e92a2.tgz",
682
+ "integrity": "sha512-vLGocB3cGxpLnExscIdWOhZmyV9EJ8jKhGY5kWFgAD43jVyQTwh9zLFd9Y+wf+p+V09qiTTq318Jr9Wmu9JWJw==",
682
683
  "license": "SEE LICENSE IN LICENSE.txt",
683
684
  "dependencies": {
684
685
  "@forge/i18n": "0.0.7",
@@ -693,21 +694,22 @@
693
694
  }
694
695
  },
695
696
  "node_modules/@forge/runtime": {
696
- "version": "6.1.0-next.0",
697
- "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-6.1.0-next.0.tgz",
698
- "integrity": "sha512-OJ1wmfzPNCRnTZiSkNSrPQVMgHJXJEqPu1fthJpfpLVZrIHNL9Uo0BhNHAuf89uINLbfhIksIC1BPTe3C95vKw==",
697
+ "version": "6.1.1-next.0-experimental-44e92a2",
698
+ "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-6.1.1-next.0-experimental-44e92a2.tgz",
699
+ "integrity": "sha512-sejV0C3sIKFXPUDuYTxQTPKiuXralFAtnIZxjmwmGdAE0gkaR9xU93P6rGnQSGwp+7fG10+MosPc0L1re42SwA==",
699
700
  "license": "SEE LICENSE IN LICENSE.txt"
700
701
  },
701
702
  "node_modules/@forge/tunnel": {
702
- "version": "6.3.0-next.5",
703
- "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-6.3.0-next.5.tgz",
704
- "integrity": "sha512-IpzXUCDgeP5xrZzB5OuKloGSQdjvbYoht2VnDROjJG0E2PVaGqp6HDJO1mmtEstbHvKUrhSOAghdSmmL/ijA8w==",
703
+ "version": "6.3.1-next.8-experimental-44e92a2",
704
+ "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-6.3.1-next.8-experimental-44e92a2.tgz",
705
+ "integrity": "sha512-g36D15U380kqOLiDCytZ5fKFKHqwKU/3UPtLdaw+ihwqYW69yKymLx4RKAxpm0olMt0ZreyB9kLmOA+sRMazXg==",
705
706
  "license": "SEE LICENSE IN LICENSE.txt",
706
707
  "dependencies": {
707
- "@forge/bundler": "6.1.9-next.5",
708
- "@forge/cli-shared": "8.8.0-next.3",
709
- "@forge/csp": "5.1.1-next.0",
710
- "@forge/runtime": "6.1.0-next.0",
708
+ "@forge/bundler": "6.1.10-next.8-experimental-44e92a2",
709
+ "@forge/cli-shared": "8.8.1-next.4-experimental-44e92a2",
710
+ "@forge/csp": "5.2.0-next.4-experimental-44e92a2",
711
+ "@forge/runtime": "6.1.1-next.0-experimental-44e92a2",
712
+ "@forge/util": "^2.0.1-next.0-experimental-44e92a2",
711
713
  "cheerio": "^1.1.0",
712
714
  "chokidar": "^3.6.0",
713
715
  "cloudflared": "^0.7.0",
@@ -725,9 +727,9 @@
725
727
  }
726
728
  },
727
729
  "node_modules/@forge/util": {
728
- "version": "2.0.0",
729
- "resolved": "https://registry.npmjs.org/@forge/util/-/util-2.0.0.tgz",
730
- "integrity": "sha512-Pa9eNeRsx70q5Dj7jmT48rQwcaIpN81H1xiW/DW3/eo6f7K7mrhMiJPuT4/BOFh28JGxX1zgcUUmEtYUg2irzA==",
730
+ "version": "2.0.1-next.0-experimental-44e92a2",
731
+ "resolved": "https://registry.npmjs.org/@forge/util/-/util-2.0.1-next.0-experimental-44e92a2.tgz",
732
+ "integrity": "sha512-mTY63K1aatFmMcritMICPMwsVehC5Eo6oHSt5hOScR10JDRf+4otDQa2UE5BSii7RHY5RbRthnlBYEtLYcSYUw==",
731
733
  "license": "SEE LICENSE IN LICENSE.txt"
732
734
  },
733
735
  "node_modules/@graphql-typed-document-node/core": {
@@ -3225,17 +3227,6 @@
3225
3227
  "node": ">= 6.0.0"
3226
3228
  }
3227
3229
  },
3228
- "node_modules/docker-compose/node_modules/yaml": {
3229
- "version": "2.8.1",
3230
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
3231
- "integrity": "sha1-GHCqArYx9+gyi5P4vFdPrF1sTXk= sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
3232
- "bin": {
3233
- "yaml": "bin.mjs"
3234
- },
3235
- "engines": {
3236
- "node": ">= 14.6"
3237
- }
3238
- },
3239
3230
  "node_modules/dom-converter": {
3240
3231
  "version": "0.2.0",
3241
3232
  "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -8617,9 +8608,9 @@
8617
8608
  }
8618
8609
  },
8619
8610
  "node_modules/yaml": {
8620
- "version": "2.8.0",
8621
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
8622
- "integrity": "sha1-FfjJhmIRvcLTeBoIkORNT6Gl//Y= sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
8611
+ "version": "2.8.1",
8612
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
8613
+ "integrity": "sha1-GHCqArYx9+gyi5P4vFdPrF1sTXk= sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
8623
8614
  "bin": {
8624
8615
  "yaml": "bin.mjs"
8625
8616
  },
@@ -117,7 +117,7 @@
117
117
  "requireUserArg": true
118
118
  },
119
119
  "--upgrade": {
120
- "requireUserArg": false
120
+ "requireUserArg": true
121
121
  },
122
122
  "--confirm-scopes": {
123
123
  "requireUserArg": false
@@ -8,7 +8,7 @@ interface InstallViewProps {
8
8
  environment: string;
9
9
  site?: URL;
10
10
  products?: SupportedProduct[];
11
- upgrade: boolean;
11
+ upgrade: string | boolean | undefined;
12
12
  nonInteractive?: boolean;
13
13
  confirmScopes: boolean;
14
14
  license?: string;
@@ -38,6 +38,8 @@ export declare class InstallController {
38
38
  private getUniqueInstallationProductsFromScopes;
39
39
  private isValidLicense;
40
40
  private validateLicenseOption;
41
+ private isValidUpgradeTarget;
42
+ private validateUpgradeTarget;
41
43
  private checkForUIKit1Modules;
42
44
  private getVersionPermissionsByMajorVersion;
43
45
  run({ environment, site, products, upgrade, confirmScopes, license, licenseModes, usersWithAccess, nonInteractive, majorVersion }: InstallViewProps): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"install-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/install-controller.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAElB,UAAU,EAaV,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EAExB,EAAE,EAGH,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAA2C,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,WAAW,EAAE,MAAM;CAGhC;AAUD,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;gBAPhC,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,EAAE,EACN,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,wBAAwB,EAAE,wBAAwB,EAChD,cAAc,EAAE,cAAc;YAGrC,cAAc;YAmBd,gBAAgB;YAkDhB,iBAAiB;YA0BjB,aAAa;YA2Bb,mBAAmB;YAcnB,wBAAwB;IAkCtC,OAAO,CAAC,uCAAuC;IAa/C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,qBAAqB,CAM3B;YAEY,mCAAmC;IAcpC,GAAG,CAAC,EACf,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,aAAa,EACb,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACb,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmKnC,OAAO,CAAC,0BAA0B;IAWrB,qCAAqC,CAChD,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,eAAe,EAAE,kBAAkB;YAevB,+BAA+B;IAc7C,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,mBAAmB,CAOzB;IAEF,OAAO,CAAC,qBAAqB,CA4C3B;IAEF,OAAO,CAAC,0BAA0B,CA8BhC;YAEY,gBAAgB;IAU9B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,uBAAuB;YAiBjB,8CAA8C;IAY5D,OAAO,CAAC,+BAA+B,CAWrC;CACH"}
1
+ {"version":3,"file":"install-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/install-controller.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAElB,UAAU,EAaV,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EAExB,EAAE,EAGH,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAA2C,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAClH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAsBD,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,WAAW,EAAE,MAAM;CAGhC;AAUD,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;gBAPhC,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,EAAE,EACN,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,WAAW,EACxB,wBAAwB,EAAE,wBAAwB,EAChD,cAAc,EAAE,cAAc;YAGrC,cAAc;YAmBd,gBAAgB;YAqDhB,iBAAiB;YA0BjB,aAAa;YA2Bb,mBAAmB;YAcnB,wBAAwB;IA0CtC,OAAO,CAAC,uCAAuC;IAa/C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,qBAAqB,CAM3B;YAEY,mCAAmC;IAcpC,GAAG,CAAC,EACf,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,aAAa,EACb,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,EACd,YAAY,EACb,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4LnC,OAAO,CAAC,0BAA0B;IAWrB,qCAAqC,CAChD,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,eAAe,EAAE,kBAAkB;YAevB,+BAA+B;IAc7C,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,mBAAmB,CAOzB;IAEF,OAAO,CAAC,qBAAqB,CA4C3B;IAEF,OAAO,CAAC,0BAA0B,CA8BhC;YAEY,gBAAgB;IAU9B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,uBAAuB;YAiBjB,8CAA8C;IAY5D,OAAO,CAAC,+BAA+B,CAWrC;CACH"}
@@ -45,11 +45,11 @@ class InstallController {
45
45
  }
46
46
  }
47
47
  }
48
- async installOrUpgrade(upgrade, environment, environmentType, site, product, appId, text, license, overrides, majorVersionId) {
48
+ async installOrUpgrade(isUpgrade, environment, environmentType, site, product, appId, text, isCodeUpgrade, license, overrides, majorVersionId) {
49
49
  const isWorkspaceProduct = !!product && this.supportedProductsService.isWorkspaceProduct(product);
50
50
  return this.ui.displayProgress(async () => {
51
- if (upgrade) {
52
- const isAlreadyUpdated = await this.installationService.upgradeInstallation(site, product, environment, appId);
51
+ if (isUpgrade) {
52
+ const isAlreadyUpdated = await this.installationService.upgradeInstallation(site, product, environment, appId, majorVersionId, isCodeUpgrade);
53
53
  return isAlreadyUpdated;
54
54
  }
55
55
  else {
@@ -111,7 +111,7 @@ class InstallController {
111
111
  });
112
112
  return installations;
113
113
  }
114
- async getInstallationToUpgrade(siteOption, productOption, environmentOption) {
114
+ async getInstallationToUpgrade(siteOption, productOption, environmentOption, isCodeUpgrade, targetVersion, isLatest) {
115
115
  const matchingInstallations = await this.getAppInstallations(siteOption, productOption, environmentOption);
116
116
  let selectedInstallationToUpgrade;
117
117
  if (siteOption && productOption?.length) {
@@ -121,7 +121,7 @@ class InstallController {
121
121
  selectedInstallationToUpgrade = matchingInstallations[0];
122
122
  }
123
123
  else {
124
- selectedInstallationToUpgrade = await this.installView.promptForUpgrade(matchingInstallations);
124
+ selectedInstallationToUpgrade = await this.installView.promptForUpgrade(matchingInstallations, isCodeUpgrade, targetVersion, isLatest);
125
125
  }
126
126
  const { site, product, environmentKey, environmentType, version } = selectedInstallationToUpgrade;
127
127
  const productName = (0, cli_shared_1.productDisplayName)(product);
@@ -165,6 +165,25 @@ class InstallController {
165
165
  }
166
166
  return upperCaseLicense;
167
167
  }
168
+ isValidUpgradeTarget(value) {
169
+ const validTargets = ['all', 'code'];
170
+ return validTargets.includes(value);
171
+ }
172
+ validateUpgradeTarget(upgradeTarget) {
173
+ if (!upgradeTarget) {
174
+ return { isUpgrade: false, isCodeUpgrade: false };
175
+ }
176
+ if (upgradeTarget === true) {
177
+ return { isUpgrade: true, isCodeUpgrade: false };
178
+ }
179
+ if (!this.isValidUpgradeTarget(upgradeTarget)) {
180
+ throw new cli_shared_1.ValidationError(cli_shared_1.Text.error.invalidUpgradeTarget);
181
+ }
182
+ return {
183
+ isUpgrade: true,
184
+ isCodeUpgrade: upgradeTarget === 'code'
185
+ };
186
+ }
168
187
  checkForUIKit1Modules = (modules) => {
169
188
  if (!modules)
170
189
  return;
@@ -183,17 +202,15 @@ class InstallController {
183
202
  }
184
203
  async run({ environment, site, products, upgrade, confirmScopes, license, licenseModes, usersWithAccess, nonInteractive, majorVersion }) {
185
204
  const { id } = await this.appConfigProvider();
186
- const text = upgrade ? cli_shared_1.Text.upgrade : cli_shared_1.Text.install;
205
+ const { isUpgrade, isCodeUpgrade } = this.validateUpgradeTarget(upgrade);
206
+ const text = isUpgrade ? cli_shared_1.Text.upgrade : cli_shared_1.Text.install;
187
207
  const validLicense = this.validateLicenseOption(license, environment);
188
208
  const overrides = await this.validateEcosystemAppInstallationOverridesInput(licenseModes, usersWithAccess, environment);
189
209
  let environmentPermissions;
190
210
  let requiredProducts;
191
211
  if (majorVersion) {
192
- if (upgrade) {
193
- throw new cli_shared_1.UserError(cli_shared_1.Text.install.error.majorVersionAndUpgrade);
194
- }
195
212
  const majorVersionResult = await this.getVersionPermissionsByMajorVersion(id, environment, majorVersion);
196
- if (!majorVersionResult.isLatest && majorVersionResult.version) {
213
+ if (!isUpgrade && !majorVersionResult.isLatest && majorVersionResult.version) {
197
214
  this.ui.warn(cli_shared_1.Text.install.majorVersionIsNotLatest(majorVersionResult.version));
198
215
  if (!nonInteractive && !(await this.ui.confirm(cli_shared_1.Text.install.devAppInstallConfirm)))
199
216
  return;
@@ -206,8 +223,8 @@ class InstallController {
206
223
  requiredProducts = environmentPermissions?.requiredProducts;
207
224
  }
208
225
  let scopesFromLastInstallation = new Set();
209
- if (upgrade) {
210
- const upgradeResult = await this.getInstallationToUpgrade(site, products?.[0], environment);
226
+ if (isUpgrade) {
227
+ const upgradeResult = await this.getInstallationToUpgrade(site, products?.[0], environment, isCodeUpgrade, environmentPermissions?.version, environmentPermissions?.isLatest);
211
228
  environment = upgradeResult.environment;
212
229
  site = upgradeResult.site;
213
230
  products = [upgradeResult.product];
@@ -241,7 +258,7 @@ class InstallController {
241
258
  const { manifestEgressAddresses, manifestScopes } = this.extractManifestData(manifestEgressEntries, permissions);
242
259
  const differenceInScopes = environmentScopes.filter((x) => !scopesFromLastInstallation.has(x));
243
260
  const listScopes = await this.convertListScope(differenceInScopes);
244
- const scopesConfirmationResult = await this.installView.promptForPermissionsConfirmation(environmentPermissions, listScopes, [...manifestScopes], manifestEgressAddresses, environment, confirmScopes, !!nonInteractive, text, !!majorVersion);
261
+ const scopesConfirmationResult = await this.installView.promptForPermissionsConfirmation(environmentPermissions, listScopes, [...manifestScopes], manifestEgressAddresses, environment, confirmScopes, !!nonInteractive, text, !!majorVersion, isCodeUpgrade);
245
262
  if (!scopesConfirmationResult)
246
263
  return;
247
264
  const successfulProducts = [];
@@ -253,7 +270,7 @@ class InstallController {
253
270
  }
254
271
  for (const product of products) {
255
272
  try {
256
- const isAlreadyUpdated = await this.installOrUpgrade(upgrade, environment, environmentType, site, product, id, text, validLicense, overrides, environmentPermissions?.versionId);
273
+ const isAlreadyUpdated = await this.installOrUpgrade(isUpgrade, environment, environmentType, site, product, id, text, isCodeUpgrade, validLicense, overrides, environmentPermissions?.versionId);
257
274
  if (isAlreadyUpdated) {
258
275
  this.ui.info(cli_shared_1.Text.upgrade.alreadyUpdated.banner(environment, (0, cli_shared_1.productDisplayName)(product), site.host));
259
276
  }
@@ -271,9 +288,14 @@ class InstallController {
271
288
  await this.checkForMultiProductScopes(environmentScopes, site, environment);
272
289
  }
273
290
  if (successfulProducts.length) {
274
- this.ui.info(text.success.banner(environment, environmentType, (0, cli_shared_1.productDisplayName)(successfulProducts.join(', ')), site.host));
291
+ if (isUpgrade) {
292
+ this.ui.info(text.success.banner(environment, environmentType, (0, cli_shared_1.productDisplayName)(successfulProducts.join(', ')), site.host, environmentPermissions?.isLatest, environmentPermissions?.version, isCodeUpgrade));
293
+ }
294
+ else {
295
+ this.ui.info(text.success.banner(environment, environmentType, (0, cli_shared_1.productDisplayName)(successfulProducts.join(', ')), site.host));
296
+ }
275
297
  }
276
- else if (!upgrade) {
298
+ else if (!isUpgrade) {
277
299
  this.ui.info(cli_shared_1.Text.install.failedAll(site, environment));
278
300
  }
279
301
  if (failedProducts.length) {