@forge/cli 6.21.1-next.9 → 6.22.0-next.11

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,238 @@
1
1
  # @forge/cli
2
2
 
3
+ ## 6.22.0-next.11
4
+
5
+ ### Patch Changes
6
+
7
+ - @forge/bundler@4.14.2-next.10
8
+ - @forge/node-runtime@0.4.5-next.2
9
+ - @forge/tunnel@3.8.8-next.10
10
+
11
+ ## 6.22.0-next.10
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [c0d1e462]
16
+ - @forge/manifest@5.2.1-next.3
17
+ - @forge/cli-shared@3.22.0-next.5
18
+ - @forge/lint@3.7.7-next.6
19
+ - @forge/tunnel@3.8.8-next.9
20
+ - @forge/bundler@4.14.2-next.9
21
+
22
+ ## 6.22.0-next.9
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies [aba51caf]
27
+ - @forge/node-runtime@0.4.5-next.1
28
+ - @forge/bundler@4.14.2-next.8
29
+ - @forge/tunnel@3.8.8-next.8
30
+
31
+ ## 6.22.0-next.8
32
+
33
+ ### Minor Changes
34
+
35
+ - b2198bc5: Updated the webtrigger CLI command to list site installations to choose from instead of requiring the explicit installation id
36
+
37
+ ### Patch Changes
38
+
39
+ - Updated dependencies [b2198bc5]
40
+ - Updated dependencies [949b52dd]
41
+ - @forge/cli-shared@3.22.0-next.4
42
+ - @forge/manifest@5.2.1-next.2
43
+ - @forge/bundler@4.14.2-next.7
44
+ - @forge/lint@3.7.7-next.5
45
+ - @forge/tunnel@3.8.8-next.7
46
+
47
+ ## 6.22.0-next.7
48
+
49
+ ### Minor Changes
50
+
51
+ - 78523361: Update the CLI to prompt the user to select a product before displaying the list of templates for that product only
52
+
53
+ ### Patch Changes
54
+
55
+ - Updated dependencies [78523361]
56
+ - @forge/cli-shared@3.22.0-next.3
57
+ - @forge/bundler@4.14.2-next.6
58
+ - @forge/lint@3.7.7-next.4
59
+ - @forge/tunnel@3.8.8-next.6
60
+
61
+ ## 6.21.2-next.6
62
+
63
+ ### Patch Changes
64
+
65
+ - Updated dependencies [fee9eb71]
66
+ - @forge/bundler@4.14.2-next.5
67
+ - @forge/tunnel@3.8.8-next.5
68
+
69
+ ## 6.21.2-next.5
70
+
71
+ ### Patch Changes
72
+
73
+ - Updated dependencies [094af3cc]
74
+ - @forge/lint@3.7.7-next.3
75
+ - @forge/bundler@4.14.2-next.4
76
+ - @forge/tunnel@3.8.8-next.4
77
+
78
+ ## 6.21.2-next.4
79
+
80
+ ### Patch Changes
81
+
82
+ - d50cf245: Bumping dependencies via Renovate:
83
+
84
+ - @types/semver
85
+
86
+ ## 6.21.2-next.3
87
+
88
+ ### Patch Changes
89
+
90
+ - Updated dependencies [c483efc2]
91
+ - @forge/bundler@4.14.2-next.3
92
+ - @forge/tunnel@3.8.8-next.3
93
+
94
+ ## 6.21.2-next.2
95
+
96
+ ### Patch Changes
97
+
98
+ - 2cf5ac83: Bumping dependencies via Renovate:
99
+
100
+ - @types/jest
101
+
102
+ - 241e673d: Bumping dependencies via Renovate:
103
+
104
+ - @types/cheerio
105
+
106
+ - Updated dependencies [2cf5ac83]
107
+ - Updated dependencies [241e673d]
108
+ - @forge/bundler@4.14.2-next.2
109
+ - @forge/cli-shared@3.21.2-next.2
110
+ - @forge/egress@1.2.10-next.0
111
+ - @forge/manifest@5.2.1-next.1
112
+ - @forge/runtime@5.2.2-next.0
113
+ - @forge/tunnel@3.8.8-next.2
114
+ - @forge/lint@3.7.7-next.2
115
+ - @forge/node-runtime@0.4.5-next.0
116
+
117
+ ## 6.21.2-next.1
118
+
119
+ ### Patch Changes
120
+
121
+ - Updated dependencies [3a4a72d0]
122
+ - @forge/manifest@5.2.1-next.0
123
+ - @forge/cli-shared@3.21.2-next.1
124
+ - @forge/lint@3.7.7-next.1
125
+ - @forge/tunnel@3.8.8-next.1
126
+ - @forge/bundler@4.14.2-next.1
127
+
128
+ ## 6.21.2-next.0
129
+
130
+ ### Patch Changes
131
+
132
+ - 9595140c: Bumping dependencies via Renovate:
133
+
134
+ - @types/cross-spawn
135
+
136
+ - Updated dependencies [853b3f1e]
137
+ - Updated dependencies [9595140c]
138
+ - @forge/cli-shared@3.21.2-next.0
139
+ - @forge/lint@3.7.7-next.0
140
+ - @forge/bundler@4.14.2-next.0
141
+ - @forge/tunnel@3.8.8-next.0
142
+
143
+ ## 6.21.1
144
+
145
+ ### Patch Changes
146
+
147
+ - ec709256: Bumping dependencies via Renovate:
148
+
149
+ - @types/archiver
150
+
151
+ - e510e6eab: Bumping dependencies via Renovate:
152
+
153
+ - @sentry/node
154
+
155
+ - 5d18a6eb: Bumping dependencies via Renovate:
156
+
157
+ - @sentry/node
158
+
159
+ - 9f553da4: Bumping dependencies via Renovate:
160
+
161
+ - @sentry/node
162
+
163
+ - 0eac4a7e2: Bumping dependencies via Renovate:
164
+
165
+ - sentry-testkit
166
+
167
+ - Updated dependencies [a0da1771]
168
+ - Updated dependencies [caf48311]
169
+ - Updated dependencies [eb167646]
170
+ - Updated dependencies [4cd28d7ae]
171
+ - Updated dependencies [100a016b]
172
+ - Updated dependencies [9ebe94bd]
173
+ - Updated dependencies [e510e6eab]
174
+ - Updated dependencies [37213858]
175
+ - Updated dependencies [5d18a6eb]
176
+ - Updated dependencies [4c4c95bb]
177
+ - Updated dependencies [9f553da4]
178
+ - Updated dependencies [6b5fc4ac]
179
+ - Updated dependencies [4e4d71085]
180
+ - Updated dependencies [5b67d37c]
181
+ - Updated dependencies [9f6656b0]
182
+ - Updated dependencies [f3296433]
183
+ - Updated dependencies [3efdf355]
184
+ - Updated dependencies [863f0f21]
185
+ - @forge/manifest@5.2.0
186
+ - @forge/bundler@4.14.1
187
+ - @forge/tunnel@3.8.7
188
+ - @forge/cli-shared@3.21.1
189
+ - @forge/lint@3.7.6
190
+ - @forge/node-runtime@0.4.4
191
+ - @forge/runtime@5.2.1
192
+
193
+ ## 6.21.1-next.14
194
+
195
+ ### Patch Changes
196
+
197
+ - @forge/bundler@4.14.1-next.13
198
+ - @forge/node-runtime@0.4.4-next.4
199
+ - @forge/tunnel@3.8.7-next.14
200
+
201
+ ## 6.21.1-next.13
202
+
203
+ ### Patch Changes
204
+
205
+ - @forge/bundler@4.14.1-next.12
206
+ - @forge/node-runtime@0.4.4-next.3
207
+ - @forge/tunnel@3.8.7-next.13
208
+
209
+ ## 6.21.1-next.12
210
+
211
+ ### Patch Changes
212
+
213
+ - Updated dependencies [a0da1771]
214
+ - @forge/manifest@5.2.0-next.4
215
+ - @forge/cli-shared@3.21.1-next.9
216
+ - @forge/lint@3.7.6-next.9
217
+ - @forge/tunnel@3.8.7-next.12
218
+ - @forge/bundler@4.14.1-next.11
219
+
220
+ ## 6.21.1-next.11
221
+
222
+ ### Patch Changes
223
+
224
+ - Updated dependencies [9f6656b]
225
+ - @forge/node-runtime@0.4.4-next.2
226
+ - @forge/bundler@4.14.1-next.10
227
+ - @forge/tunnel@3.8.7-next.11
228
+
229
+ ## 6.21.1-next.10
230
+
231
+ ### Patch Changes
232
+
233
+ - Updated dependencies [f329643]
234
+ - @forge/tunnel@3.8.7-next.10
235
+
3
236
  ## 6.21.1-next.9
4
237
 
5
238
  ### Patch Changes
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "6.21.1-next.9",
3
+ "version": "6.22.0-next.11",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@forge/cli",
9
- "version": "6.21.1-next.9",
9
+ "version": "6.22.0-next.11",
10
10
  "hasInstallScript": true,
11
11
  "license": "UNLICENSED",
12
12
  "dependencies": {
13
- "@forge/bundler": "4.14.1-next.9",
14
- "@forge/cli-shared": "3.21.1-next.8",
15
- "@forge/egress": "1.2.9",
16
- "@forge/lint": "3.7.6-next.8",
17
- "@forge/manifest": "5.2.0-next.3",
18
- "@forge/node-runtime": "0.4.4-next.1",
19
- "@forge/runtime": "5.2.1-next.0",
20
- "@forge/tunnel": "3.8.7-next.9",
13
+ "@forge/bundler": "4.14.2-next.10",
14
+ "@forge/cli-shared": "3.22.0-next.5",
15
+ "@forge/egress": "1.2.10-next.0",
16
+ "@forge/lint": "3.7.7-next.6",
17
+ "@forge/manifest": "5.2.1-next.3",
18
+ "@forge/node-runtime": "0.4.5-next.2",
19
+ "@forge/runtime": "5.2.2-next.0",
20
+ "@forge/tunnel": "3.8.8-next.10",
21
21
  "@forge/util": "1.3.3",
22
22
  "@sentry/node": "^7.81.1",
23
23
  "ajv": "^8.12.0",
@@ -53,18 +53,18 @@
53
53
  },
54
54
  "devDependencies": {
55
55
  "@types/archiver": "^6.0.2",
56
- "@types/cheerio": "^0.22.34",
56
+ "@types/cheerio": "^0.22.35",
57
57
  "@types/command-exists": "^1.2.3",
58
- "@types/cross-spawn": "^6.0.5",
58
+ "@types/cross-spawn": "^6.0.6",
59
59
  "@types/didyoumean": "^1.2.2",
60
60
  "@types/fs-extra": "^11.0.4",
61
61
  "@types/hidefile": "^3.0.3",
62
62
  "@types/inquirer": "^8.2.10",
63
- "@types/jest": "^29.5.8",
63
+ "@types/jest": "^29.5.10",
64
64
  "@types/node": "14.18.63",
65
65
  "@types/node-fetch": "^2.6.9",
66
66
  "@types/omelette": "^0.4.4",
67
- "@types/semver": "^7.5.5",
67
+ "@types/semver": "^7.5.6",
68
68
  "@types/tmp": "^0.2.6",
69
69
  "@types/uuid": "^9.0.7",
70
70
  "jest": "^29.7.0",
@@ -864,19 +864,6 @@
864
864
  "node": ">=10.0.0"
865
865
  }
866
866
  },
867
- "node_modules/@forge/api": {
868
- "version": "2.20.1",
869
- "resolved": "https://registry.npmjs.org/@forge/api/-/api-2.20.1.tgz",
870
- "integrity": "sha512-UmEWfsjnaq+xrodlKYZQeaeTI3Ox/gx1recX65i/K643C96uGJAiEItrbfsvsyw0ToYwjgzotGB0mDqOr0eKww==",
871
- "dependencies": {
872
- "@forge/auth": "0.0.5",
873
- "@forge/egress": "1.2.9",
874
- "@forge/storage": "1.5.13",
875
- "@forge/util": "1.3.3",
876
- "@types/node-fetch": "^2.6.9",
877
- "node-fetch": "2.7.0"
878
- }
879
- },
880
867
  "node_modules/@forge/auth": {
881
868
  "version": "0.0.5",
882
869
  "resolved": "https://registry.npmjs.org/@forge/auth/-/auth-0.0.5.tgz",
@@ -886,14 +873,14 @@
886
873
  }
887
874
  },
888
875
  "node_modules/@forge/babel-plugin-transform-ui": {
889
- "version": "1.1.13-next.0",
890
- "resolved": "https://registry.npmjs.org/@forge/babel-plugin-transform-ui/-/babel-plugin-transform-ui-1.1.13-next.0.tgz",
891
- "integrity": "sha512-E3cKiu1v7UWikF1ej9Jlu3oD3/Vh3drwPVwRbsfCh+TkxynJfbr11nrbFlmbUJH/1zLoQ3nMcZSYdx5qppxGpA=="
876
+ "version": "1.1.13",
877
+ "resolved": "https://registry.npmjs.org/@forge/babel-plugin-transform-ui/-/babel-plugin-transform-ui-1.1.13.tgz",
878
+ "integrity": "sha512-Wn0sqG/4NNskCni98y8Ajv49wi2BsQRBHZKzTMSsEmnypuR6Up9sJW2iot/ayZ0hn1ZKHYT0kQOCwtZIJdt2Rw=="
892
879
  },
893
880
  "node_modules/@forge/bundler": {
894
- "version": "4.14.1-next.9",
895
- "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.14.1-next.9.tgz",
896
- "integrity": "sha512-HS1UgaPD6zOmijApdJ460xTo68Umz/RLzSmAZRRYExOZasPsvk5j6NBI2vjYUaPjs4WmHBu/gKCkkvHqCvArbQ==",
881
+ "version": "4.14.2-next.10",
882
+ "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.14.2-next.10.tgz",
883
+ "integrity": "sha512-0oAatvtqipE1vppGatkva4jVJP914bISbNi/oC21lJzxdGOhpIXcZ8GXpNiKg78AbUHonUYTCRHl5uJ/FIeBUw==",
897
884
  "dependencies": {
898
885
  "@babel/core": "^7.23.3",
899
886
  "@babel/plugin-transform-class-properties": "^7.23.3",
@@ -902,11 +889,11 @@
902
889
  "@babel/plugin-transform-optional-chaining": "^7.23.4",
903
890
  "@babel/plugin-transform-react-jsx": "^7.23.4",
904
891
  "@babel/preset-typescript": "^7.23.3",
905
- "@forge/api": "2.20.1",
906
- "@forge/babel-plugin-transform-ui": "1.1.13-next.0",
907
- "@forge/cli-shared": "3.21.1-next.8",
908
- "@forge/lint": "3.7.6-next.8",
909
- "@forge/node-runtime": "0.4.4-next.1",
892
+ "@forge/api": "2.22.0-next.1",
893
+ "@forge/babel-plugin-transform-ui": "1.1.13",
894
+ "@forge/cli-shared": "3.22.0-next.5",
895
+ "@forge/lint": "3.7.7-next.6",
896
+ "@forge/node-runtime": "0.4.5-next.2",
910
897
  "@forge/util": "1.3.3",
911
898
  "assert": "^2.1.0",
912
899
  "babel-loader": "^8.3.0",
@@ -944,12 +931,30 @@
944
931
  "node": ">=12.13.1"
945
932
  }
946
933
  },
934
+ "node_modules/@forge/bundler/node_modules/@forge/api": {
935
+ "version": "2.22.0-next.1",
936
+ "resolved": "https://registry.npmjs.org/@forge/api/-/api-2.22.0-next.1.tgz",
937
+ "integrity": "sha512-vzdwQw4eB+3CHn5AqdlLY6OlPUT5Fma3sVjRPIjYBkgwCpouQMznIDgjSJyGk19oKOgyey8+iKFsCf3kwr5+RA==",
938
+ "dependencies": {
939
+ "@forge/auth": "0.0.5",
940
+ "@forge/egress": "1.2.10-next.0",
941
+ "@forge/storage": "1.5.13",
942
+ "@forge/util": "1.3.3",
943
+ "@types/node-fetch": "^2.6.9",
944
+ "node-fetch": "2.7.0"
945
+ }
946
+ },
947
+ "node_modules/@forge/bundler/node_modules/@forge/storage": {
948
+ "version": "1.5.13",
949
+ "resolved": "https://registry.npmjs.org/@forge/storage/-/storage-1.5.13.tgz",
950
+ "integrity": "sha512-V9BSggOxeu/r0LMHLwLTndvTkxwn57UAF4Q6zQ+huJ0Q6UGKjuo7eBtw4JTH4bQFPrAqj1Kh64ebtK6F3naN+w=="
951
+ },
947
952
  "node_modules/@forge/cli-shared": {
948
- "version": "3.21.1-next.8",
949
- "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-3.21.1-next.8.tgz",
950
- "integrity": "sha512-2/TYCb2P7ikZBl8tQx7hDCrtyRJqGrV15OwFydJmgrX27bCc749biuX+yeE365PYUaPjvhQP3hUHlbzSkf/ZDw==",
953
+ "version": "3.22.0-next.5",
954
+ "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-3.22.0-next.5.tgz",
955
+ "integrity": "sha512-X9Mp/s+tahawqNJDUjrel9CdRydvuU+PxRLrobvGFRwVRySm5Rtij/5nkH6nXv8+Q1IXnMhoAAKpCnZzeGpgGA==",
951
956
  "dependencies": {
952
- "@forge/manifest": "5.2.0-next.3",
957
+ "@forge/manifest": "5.2.1-next.3",
953
958
  "@forge/util": "1.3.3",
954
959
  "@sentry/node": "^7.81.1",
955
960
  "adm-zip": "^0.5.10",
@@ -984,41 +989,41 @@
984
989
  }
985
990
  },
986
991
  "node_modules/@forge/csp": {
987
- "version": "3.1.1",
988
- "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-3.1.1.tgz",
989
- "integrity": "sha512-i0BixGkc3pAEc8xaI80WwWNHoHHqolTmf8Vjm9Jm0kUEU9ad5og/tC1JXqvdlltx+nzAzcbzT5y5IdFIQny17Q==",
992
+ "version": "3.1.2-next.0",
993
+ "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-3.1.2-next.0.tgz",
994
+ "integrity": "sha512-uKgE1LUT55gugJH8fNJm5daOSWwLKBPCGwDkfL/UV1xD4vWZQLUCfu4Si5diz1YaHzyMaVujLtYX2+zdlvTTjA==",
990
995
  "dependencies": {
991
996
  "cheerio": "^0.22.0",
992
997
  "content-security-policy-parser": "^0.4.1"
993
998
  }
994
999
  },
995
1000
  "node_modules/@forge/egress": {
996
- "version": "1.2.9",
997
- "resolved": "https://registry.npmjs.org/@forge/egress/-/egress-1.2.9.tgz",
998
- "integrity": "sha512-ubvieNqXOtPdJwTVCzddy87wSZT1oi8DJ2BNqgOd0/6F35vRQwlRE1AQ0QkgkRsnSGp0i8l1rYZ5G4GQE6wCkA==",
1001
+ "version": "1.2.10-next.0",
1002
+ "resolved": "https://registry.npmjs.org/@forge/egress/-/egress-1.2.10-next.0.tgz",
1003
+ "integrity": "sha512-ooJGpZsDAHnhrqB3qmAz5I+Mne7e5n/1/cXK+hKobzEglxp/zILi2UKNgq1p7v2KYckC4/sMfxwdqUANxPcyzQ==",
999
1004
  "dependencies": {
1000
1005
  "minimatch": "^9.0.3"
1001
1006
  }
1002
1007
  },
1003
1008
  "node_modules/@forge/lint": {
1004
- "version": "3.7.6-next.8",
1005
- "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-3.7.6-next.8.tgz",
1006
- "integrity": "sha512-RFI3Fes3HLdqWjjNRxYKeFygrjqTXNwSaM8WzLWO/RYZZgdz1iO8l+8b23wjF/emKK8IxsNYzVgUNkQJb1vEwg==",
1009
+ "version": "3.7.7-next.6",
1010
+ "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-3.7.7-next.6.tgz",
1011
+ "integrity": "sha512-XNZYTuPSjzb23O1ghG+vNVC7I2USrNL+dcSXMFLfgUaEy8WxZOi+oEqRc+Tqm0dPhgok04nTKmsLgMqlposlng==",
1007
1012
  "dependencies": {
1008
- "@forge/cli-shared": "3.21.1-next.8",
1009
- "@forge/egress": "1.2.9",
1010
- "@forge/manifest": "5.2.0-next.3",
1013
+ "@forge/cli-shared": "3.22.0-next.5",
1014
+ "@forge/egress": "1.2.10-next.0",
1015
+ "@forge/manifest": "5.2.1-next.3",
1011
1016
  "@typescript-eslint/typescript-estree": "^5.62.0",
1012
1017
  "array.prototype.flatmap": "^1.3.2",
1013
- "atlassian-openapi": "^1.0.17",
1018
+ "atlassian-openapi": "^1.0.18",
1014
1019
  "cross-spawn": "^7.0.3",
1015
1020
  "node-fetch": "2.7.0"
1016
1021
  }
1017
1022
  },
1018
1023
  "node_modules/@forge/manifest": {
1019
- "version": "5.2.0-next.3",
1020
- "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-5.2.0-next.3.tgz",
1021
- "integrity": "sha512-1XOXwVufk1NFFdEC8LbXmTqicLJbto5v+o/MsJftajHp2bplbyUJ+xtawqQaA9Ae0O5gKRgV1Ocm7K/GHt/lxA==",
1024
+ "version": "5.2.1-next.3",
1025
+ "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-5.2.1-next.3.tgz",
1026
+ "integrity": "sha512-0KcsoHyQ2rLhLdDOMKljbwYcAZBUYMDjK0gGqbV/pXXtqg43/AnndxkmI/EyN5bO2eVCx+YOAz8pgA9cJVSXsQ==",
1022
1027
  "dependencies": {
1023
1028
  "@forge/util": "1.3.3",
1024
1029
  "ajv": "^8.12.0",
@@ -1033,19 +1038,37 @@
1033
1038
  }
1034
1039
  },
1035
1040
  "node_modules/@forge/node-runtime": {
1036
- "version": "0.4.4-next.1",
1037
- "resolved": "https://registry.npmjs.org/@forge/node-runtime/-/node-runtime-0.4.4-next.1.tgz",
1038
- "integrity": "sha512-DUF3CjbD+MZU0ElLEYU5MSMTQDJFswNyP7jMvd1ZdFZCO19M9JyyhQz29KzH9ND5ddtuPex++q3AnmnvYfzBqA==",
1041
+ "version": "0.4.5-next.2",
1042
+ "resolved": "https://registry.npmjs.org/@forge/node-runtime/-/node-runtime-0.4.5-next.2.tgz",
1043
+ "integrity": "sha512-jGiM22tIqh6ZOJ8AkZ7YkyHkG/sFxchJFcXJQilwaznGHcFOlH5OlK5OIqW5of+1gzOtq2o6sAFiz7LqICtLJg==",
1039
1044
  "dependencies": {
1040
- "@forge/api": "2.20.1",
1041
- "@forge/runtime": "5.2.1-next.0",
1045
+ "@forge/api": "2.22.0-next.1",
1046
+ "@forge/runtime": "5.2.2-next.0",
1042
1047
  "uuid": "^9.0.1"
1043
1048
  }
1044
1049
  },
1050
+ "node_modules/@forge/node-runtime/node_modules/@forge/api": {
1051
+ "version": "2.22.0-next.1",
1052
+ "resolved": "https://registry.npmjs.org/@forge/api/-/api-2.22.0-next.1.tgz",
1053
+ "integrity": "sha512-vzdwQw4eB+3CHn5AqdlLY6OlPUT5Fma3sVjRPIjYBkgwCpouQMznIDgjSJyGk19oKOgyey8+iKFsCf3kwr5+RA==",
1054
+ "dependencies": {
1055
+ "@forge/auth": "0.0.5",
1056
+ "@forge/egress": "1.2.10-next.0",
1057
+ "@forge/storage": "1.5.13",
1058
+ "@forge/util": "1.3.3",
1059
+ "@types/node-fetch": "^2.6.9",
1060
+ "node-fetch": "2.7.0"
1061
+ }
1062
+ },
1063
+ "node_modules/@forge/node-runtime/node_modules/@forge/storage": {
1064
+ "version": "1.5.13",
1065
+ "resolved": "https://registry.npmjs.org/@forge/storage/-/storage-1.5.13.tgz",
1066
+ "integrity": "sha512-V9BSggOxeu/r0LMHLwLTndvTkxwn57UAF4Q6zQ+huJ0Q6UGKjuo7eBtw4JTH4bQFPrAqj1Kh64ebtK6F3naN+w=="
1067
+ },
1045
1068
  "node_modules/@forge/runtime": {
1046
- "version": "5.2.1-next.0",
1047
- "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-5.2.1-next.0.tgz",
1048
- "integrity": "sha512-O6syVIvZFf5UwZCrh688f4Hux+M3h4x7MlGbLuGs+7RUj2BL8/QlsN8Ra56LXHLuriVy/9pWRzIm4xRx9RwkFQ==",
1069
+ "version": "5.2.2-next.0",
1070
+ "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-5.2.2-next.0.tgz",
1071
+ "integrity": "sha512-fmD+8un9E+9qYpSEt6ZL16QxhAtnmQBi6ZH10tGeeV1HZYA2LAkFNvp5Q0W9s94hN+NRpUSCXw46KcAKwfXtKg==",
1049
1072
  "dependencies": {
1050
1073
  "@forge/util": "1.3.3",
1051
1074
  "fp-ts": "^2.16.1",
@@ -1057,20 +1080,15 @@
1057
1080
  "yaml": "^2.3.4"
1058
1081
  }
1059
1082
  },
1060
- "node_modules/@forge/storage": {
1061
- "version": "1.5.13",
1062
- "resolved": "https://registry.npmjs.org/@forge/storage/-/storage-1.5.13.tgz",
1063
- "integrity": "sha512-V9BSggOxeu/r0LMHLwLTndvTkxwn57UAF4Q6zQ+huJ0Q6UGKjuo7eBtw4JTH4bQFPrAqj1Kh64ebtK6F3naN+w=="
1064
- },
1065
1083
  "node_modules/@forge/tunnel": {
1066
- "version": "3.8.7-next.9",
1067
- "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-3.8.7-next.9.tgz",
1068
- "integrity": "sha512-pu8RWPcbQz7IFArGL7p7P46enxLsO9zuphRP2+61qtKtOvxU15z97C7rHyoAImCXRpphQHGZHAcCTRWCteeWRw==",
1069
- "dependencies": {
1070
- "@forge/bundler": "4.14.1-next.9",
1071
- "@forge/cli-shared": "3.21.1-next.8",
1072
- "@forge/csp": "3.1.1",
1073
- "@forge/runtime": "5.2.1-next.0",
1084
+ "version": "3.8.8-next.10",
1085
+ "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-3.8.8-next.10.tgz",
1086
+ "integrity": "sha512-etDjKI6fovSMuC6oOxzsRxY+p6gsbt+WIMUXlenM/oR0Ovaalqq3CGAAqbJa5otP+7vCMBGEgetqTLkx2OMpxw==",
1087
+ "dependencies": {
1088
+ "@forge/bundler": "4.14.2-next.10",
1089
+ "@forge/cli-shared": "3.22.0-next.5",
1090
+ "@forge/csp": "3.1.2-next.0",
1091
+ "@forge/runtime": "5.2.2-next.0",
1074
1092
  "express": "^4.18.2",
1075
1093
  "express-intercept": "^1.1.0",
1076
1094
  "http-proxy-middleware": "^2.0.6",
@@ -1595,9 +1613,9 @@
1595
1613
  "integrity": "sha1-UNaAyKinj+MKvmkGRTshrYqwrXs= sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg=="
1596
1614
  },
1597
1615
  "node_modules/@types/lodash": {
1598
- "version": "4.14.201",
1599
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.201.tgz",
1600
- "integrity": "sha1-dvR8tjEk6AaCS2wYRj2vPh1IAjk= sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ=="
1616
+ "version": "4.14.202",
1617
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz",
1618
+ "integrity": "sha1-8J29L7CC1QcXiy8qXH50vXL/mPg= sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ=="
1601
1619
  },
1602
1620
  "node_modules/@types/mime": {
1603
1621
  "version": "1.3.2",
@@ -2331,9 +2349,9 @@
2331
2349
  "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
2332
2350
  },
2333
2351
  "node_modules/atlassian-openapi": {
2334
- "version": "1.0.17",
2335
- "resolved": "https://registry.npmjs.org/atlassian-openapi/-/atlassian-openapi-1.0.17.tgz",
2336
- "integrity": "sha1-loremYtl9Q/A/58HgHBzATRKNRs= sha512-8aW0Xgl9mVdL9dCABSZAvCayMPyh6uVu86UzOat8Kc1qDMUtXn2OxcwDsJfm/qCtBSeZ+GE/PkFxx3ZRIp3hFg==",
2352
+ "version": "1.0.18",
2353
+ "resolved": "https://registry.npmjs.org/atlassian-openapi/-/atlassian-openapi-1.0.18.tgz",
2354
+ "integrity": "sha1-ljFQwXQmhYtaxRvpoHqemu9CfKk= sha512-IXgF/cYD8DW1mYB/ejDm/lKQMNXi2iCsxus2Y0ffZOxfa/SLoz0RuEZ4xu4suSRjtlda7qZDonQ6TAkQPVuQig==",
2337
2355
  "dependencies": {
2338
2356
  "jsonpointer": "^5.0.0",
2339
2357
  "urijs": "^1.19.10"
@@ -1,5 +1,7 @@
1
1
  import { CreateAppCommandResult, CommandLineUI, CreateAppCommand, FeatureFlagService } from '@forge/cli-shared';
2
2
  import { Dependencies } from './dependency-injection';
3
+ export declare function formatProduct(product: string): string;
4
+ export declare function templateMatchesProduct(productName: string, templateName: string, products: (string | null)[]): boolean;
3
5
  export declare function directoryNameFromAppName(appName?: string): string | undefined;
4
6
  export interface CreateCommandHandlerOptions {
5
7
  template?: string;
@@ -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;AAsBtD,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,CAwGjC;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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerCommands = exports.createCommandHandler = exports.directoryNameFromAppName = void 0;
3
+ exports.registerCommands = exports.createCommandHandler = exports.directoryNameFromAppName = exports.templateMatchesProduct = exports.formatProduct = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const fs_1 = tslib_1.__importDefault(require("fs"));
6
6
  const sanitize_filename_1 = tslib_1.__importDefault(require("sanitize-filename"));
@@ -13,6 +13,14 @@ var TemplateCategory;
13
13
  TemplateCategory["UI_KIT"] = "UI kit";
14
14
  TemplateCategory["UI_KIT_2"] = "UI kit 2 (Preview)";
15
15
  })(TemplateCategory || (TemplateCategory = {}));
16
+ const PRODUCT_CATEGORY = ['show-all', 'bitbucket', 'compass', 'confluence', 'jira', 'jira-service-management'];
17
+ function formatProduct(product) {
18
+ return product
19
+ .split('-')
20
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
21
+ .join(' ');
22
+ }
23
+ exports.formatProduct = formatProduct;
16
24
  function ensureDirectoryDoesntExist(directory) {
17
25
  if (fs_1.default.existsSync(directory)) {
18
26
  throw new cli_shared_1.ValidationError(cli_shared_1.Text.create.error.directory.exists(directory));
@@ -23,6 +31,12 @@ function ensureValidNameLength(name) {
23
31
  throw new cli_shared_1.ValidationError(cli_shared_1.Text.create.error.name.tooLong());
24
32
  }
25
33
  }
34
+ function templateMatchesProduct(productName, templateName, products) {
35
+ return (templateName.includes(productName) &&
36
+ products.length > 0 &&
37
+ !products.some((otherProduct) => otherProduct && otherProduct.length > productName.length && templateName.includes(otherProduct)));
38
+ }
39
+ exports.templateMatchesProduct = templateMatchesProduct;
26
40
  function directoryNameFromAppName(appName) {
27
41
  if (appName === undefined) {
28
42
  return undefined;
@@ -82,7 +96,26 @@ async function createCommandHandler(ui, createAppCommand, featureFlagService, na
82
96
  }
83
97
  })
84
98
  .map((name) => name.replace('-ui-kit', '').replace('-custom-ui', '').replace('-csuik', ''));
85
- template = await ui.promptForList(cli_shared_1.Text.create.promptTemplate, filteredTemplates);
99
+ const enableCategoriseTemplateByProduct = await featureFlagService.readFlag('forge-cli-enable-categorise-templates-by-product_e9fzn');
100
+ if (enableCategoriseTemplateByProduct && type !== TemplateCategory.SHOW_ALL) {
101
+ const productList = PRODUCT_CATEGORY.filter((productName) => productName === 'show-all' ||
102
+ filteredTemplates.some((template) => templateMatchesProduct(productName, template, PRODUCT_CATEGORY)));
103
+ if (productList.length > 1) {
104
+ const product = await ui.promptForList(cli_shared_1.Text.create.promptProduct, productList, {
105
+ format: formatProduct
106
+ });
107
+ const productFilteredTemplates = product === 'show-all'
108
+ ? filteredTemplates
109
+ : filteredTemplates.filter((template) => templateMatchesProduct(product, template, PRODUCT_CATEGORY));
110
+ template = await ui.promptForList(cli_shared_1.Text.create.promptTemplate, productFilteredTemplates);
111
+ }
112
+ else {
113
+ template = await ui.promptForList(cli_shared_1.Text.create.promptTemplate, filteredTemplates);
114
+ }
115
+ }
116
+ else {
117
+ template = await ui.promptForList(cli_shared_1.Text.create.promptTemplate, filteredTemplates);
118
+ }
86
119
  if (type === TemplateCategory.UI_KIT) {
87
120
  template = `${template}-ui-kit`;
88
121
  }
@@ -1,3 +1,3 @@
1
1
  import { Dependencies } from './dependency-injection';
2
- export declare const registerCommands: ({ cmd, ui, graphqlGateway, configFile, commands: { getWebTriggerURLCommand } }: Dependencies) => void;
2
+ export declare const registerCommands: ({ cmd, ui, graphqlGateway, configFile, services: { installationsService }, commands: { getWebTriggerURLCommand } }: Dependencies) => void;
3
3
  //# sourceMappingURL=register-webtrigger-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-webtrigger-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-webtrigger-commands.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA+BtD,eAAO,MAAM,gBAAgB,mFAM1B,YAAY,SA8Bd,CAAC"}
1
+ {"version":3,"file":"register-webtrigger-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-webtrigger-commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAgCtD,eAAO,MAAM,gBAAgB,uHAO1B,YAAY,SA6Cd,CAAC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerCommands = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
5
  const cli_shared_2 = require("@forge/cli-shared");
6
- const cli_shared_3 = require("@forge/cli-shared");
6
+ const installation_helper_1 = require("../installations/installation-helper");
7
7
  const getAvailableWebTriggers = (appConfig) => {
8
8
  const output = new Map();
9
9
  if (appConfig.modules && appConfig.modules.webtrigger) {
@@ -17,7 +17,7 @@ async function getValidWebtriggers(configFile) {
17
17
  const manifest = await configFile.readConfig();
18
18
  const availableWebTriggers = getAvailableWebTriggers(manifest);
19
19
  if (!availableWebTriggers.size) {
20
- throw new cli_shared_3.ValidationError(cli_shared_2.Text.webtrigger.error.noWebtriggers);
20
+ throw new cli_shared_2.ValidationError(cli_shared_1.Text.webtrigger.error.noWebtriggers);
21
21
  }
22
22
  return availableWebTriggers;
23
23
  }
@@ -26,31 +26,39 @@ function manifestDefinesTriggers(configFile) {
26
26
  await getValidWebtriggers(configFile);
27
27
  };
28
28
  }
29
- const registerCommands = ({ cmd, ui, graphqlGateway, configFile, commands: { getWebTriggerURLCommand } }) => {
29
+ const registerCommands = ({ cmd, ui, graphqlGateway, configFile, services: { installationsService }, commands: { getWebTriggerURLCommand } }) => {
30
30
  const validateWebtriggerKey = async (functionKey) => {
31
31
  const availableWebTriggers = await getValidWebtriggers(configFile);
32
32
  if (functionKey) {
33
33
  if (!availableWebTriggers.has(functionKey)) {
34
- throw new cli_shared_3.ValidationError(cli_shared_2.Text.webtrigger.error.funcKey);
34
+ throw new cli_shared_2.ValidationError(cli_shared_1.Text.webtrigger.error.funcKey);
35
35
  }
36
36
  return functionKey;
37
37
  }
38
38
  else {
39
39
  const options = [...availableWebTriggers.keys()];
40
- return await ui.promptForList(cli_shared_2.Text.webtrigger.promptFuncKey, options);
40
+ return await ui.promptForList(cli_shared_1.Text.webtrigger.promptFuncKey, options);
41
41
  }
42
42
  };
43
43
  cmd
44
44
  .command('webtrigger [installationId]')
45
45
  .requireAppId()
46
- .description(cli_shared_2.Text.webtrigger.cmd)
47
- .option('-f, --functionKey [function]', cli_shared_2.Text.webtrigger.optionFuncKey)
46
+ .description(cli_shared_1.Text.webtrigger.cmd)
47
+ .option('-f, --functionKey [function]', cli_shared_1.Text.webtrigger.optionFuncKey)
48
48
  .precondition(manifestDefinesTriggers(configFile))
49
- .action(async (installationId, { functionKey }) => {
50
- ui.info(cli_shared_2.Text.webtrigger.overviewFuncKey);
51
- const installId = await (0, cli_shared_1.getInstallationId)(ui, installationId);
52
- const url = await getWebTriggerURLCommand.execute(installId, await validateWebtriggerKey(functionKey));
53
- ui.info(cli_shared_2.Text.webtrigger.copy(url));
49
+ .action(async (argInstallationId, { functionKey }) => {
50
+ let selectedInstallationId = '';
51
+ if (argInstallationId) {
52
+ ui.info(cli_shared_1.Text.webtrigger.overviewFuncKey);
53
+ selectedInstallationId = (0, installation_helper_1.validateInstallationId)(argInstallationId);
54
+ }
55
+ else {
56
+ const appInstallation = await installationsService.listNonTechnicalAppInstallations();
57
+ const installation = await (0, installation_helper_1.selectSingleInstallation)(ui, appInstallation.installations, cli_shared_1.Text.webtrigger.promptInstallationTable, cli_shared_1.Text.webtrigger.overViewInstallationTable);
58
+ selectedInstallationId = (0, installation_helper_1.validateInstallationId)(installation.id);
59
+ }
60
+ const url = await getWebTriggerURLCommand.execute(selectedInstallationId, await validateWebtriggerKey(functionKey));
61
+ ui.info(cli_shared_1.Text.webtrigger.copy(url));
54
62
  });
55
63
  };
56
64
  exports.registerCommands = registerCommands;
@@ -1 +1 @@
1
- {"version":3,"file":"install-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/install-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,EAAE,EAEF,UAAU,EAEX,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAE7F,UAAU,2BAA2B;IACnC,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,MAAM,CAAC;IAC7C,mBAAmB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IAC3D,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,gCAAgC,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,MAAM,CAAC;CACzF;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEtB,gCAAgC,CAC3C,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,yBAAyB,EACtD,WAAW,EAAE,UAAU,EAAE,EACzB,cAAc,EAAE,MAAM,EAAE,EACxB,uBAAuB,EAAE,MAAM,EAAE,EACjC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EACvB,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,OAAO,CAAC;IA+BN,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;CAqBpF"}
1
+ {"version":3,"file":"install-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/install-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,EAAE,EAA8B,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAK1G,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAE7F,UAAU,2BAA2B;IACnC,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,MAAM,CAAC;IAC7C,mBAAmB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IAC3D,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,gCAAgC,EAAE,CAAC,gCAAgC,EAAE,OAAO,KAAK,MAAM,CAAC;CACzF;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEtB,gCAAgC,CAC3C,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,yBAAyB,EACtD,WAAW,EAAE,UAAU,EAAE,EACzB,cAAc,EAAE,MAAM,EAAE,EACxB,uBAAuB,EAAE,MAAM,EAAE,EACjC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,OAAO,EACtB,cAAc,EAAE,OAAO,EACvB,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,OAAO,CAAC;IA+BN,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;CAUpF"}
@@ -4,6 +4,7 @@ exports.InstallView = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
5
  const egress_1 = require("@forge/egress");
6
6
  const lodash_1 = require("lodash");
7
+ const installation_helper_1 = require("../../installations/installation-helper");
7
8
  class InstallView {
8
9
  constructor(ui) {
9
10
  this.ui = ui;
@@ -32,17 +33,7 @@ class InstallView {
32
33
  return true;
33
34
  }
34
35
  async promptForUpgrade(installations) {
35
- const installationIndex = await this.ui.promptForSingleChoiceTable(cli_shared_1.Text.upgradeContext.promptInstallation, cli_shared_1.Text.upgradeContext.overview, ['Environment', 'Site', 'Product', 'Version'], installations.map(({ id, environmentKey, product, site, version }) => ({
36
- names: [
37
- (0, cli_shared_1.environmentToOption)(environmentKey),
38
- site,
39
- (0, cli_shared_1.productDisplayName)(product),
40
- cli_shared_1.Text.install.booleanToScope(version.isLatest)
41
- ],
42
- value: id,
43
- primary: site
44
- })));
45
- const installation = installations[installationIndex];
36
+ const installation = (0, installation_helper_1.selectSingleInstallation)(this.ui, installations, cli_shared_1.Text.upgradeContext.promptInstallation, cli_shared_1.Text.upgradeContext.overview);
46
37
  return installation;
47
38
  }
48
39
  }
@@ -0,0 +1,5 @@
1
+ import { Installation } from '../service/installation-service';
2
+ import { UI } from '@forge/cli-shared';
3
+ export declare function validateInstallationId(installationId?: string): string;
4
+ export declare function selectSingleInstallation(ui: UI, installations: Installation[], installationTablePrompt: string, installationTableOverview: string): Promise<Installation>;
5
+ //# sourceMappingURL=installation-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installation-helper.d.ts","sourceRoot":"","sources":["../../src/installations/installation-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAyC,EAAE,EAAmB,MAAM,mBAAmB,CAAC;AAE/F,wBAAgB,sBAAsB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAWtE;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,YAAY,EAAE,EAC7B,uBAAuB,EAAE,MAAM,EAC/B,yBAAyB,EAAE,MAAM,GAChC,OAAO,CAAC,YAAY,CAAC,CAkBvB"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectSingleInstallation = exports.validateInstallationId = void 0;
4
+ const cli_shared_1 = require("@forge/cli-shared");
5
+ function validateInstallationId(installationId) {
6
+ if (!installationId) {
7
+ throw new cli_shared_1.ValidationError(cli_shared_1.Text.installationId.errors.invalid);
8
+ }
9
+ const trimmedId = installationId.trim();
10
+ if (trimmedId.length === 0) {
11
+ throw new cli_shared_1.ValidationError(cli_shared_1.Text.installationId.errors.invalid);
12
+ }
13
+ return trimmedId;
14
+ }
15
+ exports.validateInstallationId = validateInstallationId;
16
+ async function selectSingleInstallation(ui, installations, installationTablePrompt, installationTableOverview) {
17
+ const installationIndex = await ui.promptForSingleChoiceTable(installationTablePrompt, installationTableOverview, ['Environment', 'Site', 'Product', 'Version'], installations.map(({ id, environmentKey, product, site, version }) => ({
18
+ names: [
19
+ (0, cli_shared_1.environmentToOption)(environmentKey),
20
+ site,
21
+ (0, cli_shared_1.capitalise)(product),
22
+ cli_shared_1.Text.install.booleanToScope(version.isLatest)
23
+ ],
24
+ value: id,
25
+ primary: site
26
+ })));
27
+ return installations[installationIndex];
28
+ }
29
+ exports.selectSingleInstallation = selectSingleInstallation;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "6.21.1-next.9",
3
+ "version": "6.22.0-next.11",
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.14.1-next.9",
22
- "@forge/cli-shared": "3.21.1-next.8",
23
- "@forge/egress": "1.2.9",
24
- "@forge/lint": "3.7.6-next.8",
25
- "@forge/manifest": "5.2.0-next.3",
26
- "@forge/node-runtime": "0.4.4-next.1",
27
- "@forge/runtime": "5.2.1-next.0",
28
- "@forge/tunnel": "3.8.7-next.9",
21
+ "@forge/bundler": "4.14.2-next.10",
22
+ "@forge/cli-shared": "3.22.0-next.5",
23
+ "@forge/egress": "1.2.10-next.0",
24
+ "@forge/lint": "3.7.7-next.6",
25
+ "@forge/manifest": "5.2.1-next.3",
26
+ "@forge/node-runtime": "0.4.5-next.2",
27
+ "@forge/runtime": "5.2.2-next.0",
28
+ "@forge/tunnel": "3.8.8-next.10",
29
29
  "@forge/util": "1.3.3",
30
30
  "@sentry/node": "^7.81.1",
31
31
  "ajv": "^8.12.0",
@@ -58,18 +58,18 @@
58
58
  },
59
59
  "devDependencies": {
60
60
  "@types/archiver": "^6.0.2",
61
- "@types/cheerio": "^0.22.34",
61
+ "@types/cheerio": "^0.22.35",
62
62
  "@types/command-exists": "^1.2.3",
63
- "@types/cross-spawn": "^6.0.5",
63
+ "@types/cross-spawn": "^6.0.6",
64
64
  "@types/didyoumean": "^1.2.2",
65
65
  "@types/fs-extra": "^11.0.4",
66
66
  "@types/hidefile": "^3.0.3",
67
67
  "@types/inquirer": "^8.2.10",
68
- "@types/jest": "^29.5.8",
68
+ "@types/jest": "^29.5.10",
69
69
  "@types/node": "14.18.63",
70
70
  "@types/node-fetch": "^2.6.9",
71
71
  "@types/omelette": "^0.4.4",
72
- "@types/semver": "^7.5.5",
72
+ "@types/semver": "^7.5.6",
73
73
  "@types/tmp": "^0.2.6",
74
74
  "@types/uuid": "^9.0.7",
75
75
  "jest": "^29.7.0",