@forge/cli 10.13.4-next.1-experimental-19bd64d → 10.13.4
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 +6 -11
- package/npm-shrinkwrap.json +34 -50
- package/out/autocomplete/autocomplete-config.json +0 -8
- package/out/command-line/dependency-injection.d.ts +0 -2
- package/out/command-line/dependency-injection.d.ts.map +1 -1
- package/out/command-line/dependency-injection.js +1 -7
- package/out/command-line/index.d.ts.map +1 -1
- package/out/command-line/index.js +0 -2
- package/package.json +6 -9
- package/out/command-line/controller/version-controller.d.ts +0 -36
- package/out/command-line/controller/version-controller.d.ts.map +0 -1
- package/out/command-line/controller/version-controller.js +0 -121
- package/out/command-line/register-version-commands.d.ts +0 -4
- package/out/command-line/register-version-commands.d.ts.map +0 -1
- package/out/command-line/register-version-commands.js +0 -72
- package/out/command-line/view/version-view.d.ts +0 -26
- package/out/command-line/view/version-view.d.ts.map +0 -1
- package/out/command-line/view/version-view.js +0 -193
- package/out/service/version-service.d.ts +0 -74
- package/out/service/version-service.d.ts.map +0 -1
- package/out/service/version-service.js +0 -134
- package/out/version/graphql-client.d.ts +0 -27
- package/out/version/graphql-client.d.ts.map +0 -1
- package/out/version/graphql-client.js +0 -150
package/CHANGELOG.md
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
# @forge/cli
|
|
2
2
|
|
|
3
|
-
## 10.13.4
|
|
4
|
-
|
|
5
|
-
### Minor Changes
|
|
6
|
-
|
|
7
|
-
- c5efb5f: Added command for app versions details
|
|
3
|
+
## 10.13.4
|
|
8
4
|
|
|
9
5
|
### Patch Changes
|
|
10
6
|
|
|
11
|
-
- Updated dependencies [c5efb5f]
|
|
12
7
|
- Updated dependencies [19c93e7]
|
|
13
8
|
- Updated dependencies [1815689]
|
|
14
9
|
- Updated dependencies [a808a56]
|
|
15
|
-
- @forge/
|
|
16
|
-
- @forge/
|
|
17
|
-
- @forge/bundler@4.20.5
|
|
18
|
-
- @forge/lint@5.6.5
|
|
19
|
-
- @forge/tunnel@5.8.1
|
|
10
|
+
- @forge/manifest@8.4.1
|
|
11
|
+
- @forge/cli-shared@6.5.2
|
|
12
|
+
- @forge/bundler@4.20.5
|
|
13
|
+
- @forge/lint@5.6.5
|
|
14
|
+
- @forge/tunnel@5.8.1
|
|
20
15
|
|
|
21
16
|
## 10.13.4-next.1
|
|
22
17
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/cli",
|
|
3
|
-
"version": "10.13.4
|
|
3
|
+
"version": "10.13.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@forge/cli",
|
|
9
|
-
"version": "10.13.4
|
|
9
|
+
"version": "10.13.4",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "UNLICENSED",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@forge/bundler": "4.20.5
|
|
14
|
-
"@forge/cli-shared": "6.5.2
|
|
13
|
+
"@forge/bundler": "4.20.5",
|
|
14
|
+
"@forge/cli-shared": "6.5.2",
|
|
15
15
|
"@forge/egress": "1.3.0",
|
|
16
16
|
"@forge/i18n": "0.0.2",
|
|
17
|
-
"@forge/lint": "5.6.5
|
|
18
|
-
"@forge/manifest": "8.4.1
|
|
17
|
+
"@forge/lint": "5.6.5",
|
|
18
|
+
"@forge/manifest": "8.4.1",
|
|
19
19
|
"@forge/runtime": "5.10.4",
|
|
20
|
-
"@forge/tunnel": "5.8.1
|
|
20
|
+
"@forge/tunnel": "5.8.1",
|
|
21
21
|
"@forge/util": "1.4.6",
|
|
22
|
-
"@sandfox/arn": "^2.1.0",
|
|
23
22
|
"@sentry/node": "7.106.0",
|
|
24
23
|
"ajv": "^8.12.0",
|
|
25
24
|
"archiver": "^6.0.2",
|
|
@@ -32,7 +31,6 @@
|
|
|
32
31
|
"cross-spawn": "^7.0.3",
|
|
33
32
|
"dayjs": "^1.11.10",
|
|
34
33
|
"didyoumean": "^1.2.2",
|
|
35
|
-
"diff": "^7.0.0",
|
|
36
34
|
"env-paths": "^2.2.1",
|
|
37
35
|
"exponential-backoff": "^3.1.1",
|
|
38
36
|
"form-data": "^4.0.0",
|
|
@@ -60,7 +58,6 @@
|
|
|
60
58
|
"@types/command-exists": "^1.2.3",
|
|
61
59
|
"@types/cross-spawn": "^6.0.6",
|
|
62
60
|
"@types/didyoumean": "^1.2.2",
|
|
63
|
-
"@types/diff": "^6.0.0",
|
|
64
61
|
"@types/fs-extra": "^11.0.4",
|
|
65
62
|
"@types/hidefile": "^3.0.3",
|
|
66
63
|
"@types/inquirer": "^8.2.10",
|
|
@@ -840,9 +837,9 @@
|
|
|
840
837
|
"license": "UNLICENSED"
|
|
841
838
|
},
|
|
842
839
|
"node_modules/@forge/bundler": {
|
|
843
|
-
"version": "4.20.5
|
|
844
|
-
"resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.20.5
|
|
845
|
-
"integrity": "sha512-
|
|
840
|
+
"version": "4.20.5",
|
|
841
|
+
"resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.20.5.tgz",
|
|
842
|
+
"integrity": "sha512-7of1vd+Oz0OdXVPlxNUifq8aNGD9iHcCRxuKGyN/JLdXZZk7yvdD3H+nuBLXcbanfYoj/eHJ/NisPOwyT6YtZA==",
|
|
846
843
|
"license": "UNLICENSED",
|
|
847
844
|
"dependencies": {
|
|
848
845
|
"@babel/core": "^7.24.0",
|
|
@@ -854,10 +851,10 @@
|
|
|
854
851
|
"@babel/preset-typescript": "^7.23.3",
|
|
855
852
|
"@forge/api": "4.2.0",
|
|
856
853
|
"@forge/babel-plugin-transform-ui": "1.1.19",
|
|
857
|
-
"@forge/cli-shared": "6.5.2
|
|
854
|
+
"@forge/cli-shared": "6.5.2",
|
|
858
855
|
"@forge/i18n": "0.0.2",
|
|
859
|
-
"@forge/lint": "5.6.5
|
|
860
|
-
"@forge/manifest": "8.4.1
|
|
856
|
+
"@forge/lint": "5.6.5",
|
|
857
|
+
"@forge/manifest": "8.4.1",
|
|
861
858
|
"@forge/util": "1.4.6",
|
|
862
859
|
"assert": "^2.1.0",
|
|
863
860
|
"babel-loader": "^8.3.0",
|
|
@@ -916,13 +913,13 @@
|
|
|
916
913
|
"license": "UNLICENSED"
|
|
917
914
|
},
|
|
918
915
|
"node_modules/@forge/cli-shared": {
|
|
919
|
-
"version": "6.5.2
|
|
920
|
-
"resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-6.5.2
|
|
921
|
-
"integrity": "sha512-
|
|
916
|
+
"version": "6.5.2",
|
|
917
|
+
"resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-6.5.2.tgz",
|
|
918
|
+
"integrity": "sha512-fmIf7hfxLE91eS13GTxHnQYaho8PARCYadPsJbllf4t5vRbHzmibjmPQZplDDMGvzz1gKBZfv6uIqbp5V+bZRg==",
|
|
922
919
|
"license": "UNLICENSED",
|
|
923
920
|
"dependencies": {
|
|
924
921
|
"@forge/i18n": "0.0.2",
|
|
925
|
-
"@forge/manifest": "8.4.1
|
|
922
|
+
"@forge/manifest": "8.4.1",
|
|
926
923
|
"@forge/util": "1.4.6",
|
|
927
924
|
"@sentry/node": "7.106.0",
|
|
928
925
|
"adm-zip": "^0.5.10",
|
|
@@ -956,9 +953,9 @@
|
|
|
956
953
|
}
|
|
957
954
|
},
|
|
958
955
|
"node_modules/@forge/csp": {
|
|
959
|
-
"version": "3.6.0
|
|
960
|
-
"resolved": "https://registry.npmjs.org/@forge/csp/-/csp-3.6.0
|
|
961
|
-
"integrity": "sha512-
|
|
956
|
+
"version": "3.6.0",
|
|
957
|
+
"resolved": "https://registry.npmjs.org/@forge/csp/-/csp-3.6.0.tgz",
|
|
958
|
+
"integrity": "sha512-F+9wL0VoB9X65J2SWwpDbWr1RHBmL/M47Fk9swQNzRk1h6+MbTnnraPJeTo3VfoxcC2AlmkVRYMYDmc1hbNSnw==",
|
|
962
959
|
"license": "UNLICENSED",
|
|
963
960
|
"dependencies": {
|
|
964
961
|
"cheerio": "^0.22.0",
|
|
@@ -984,14 +981,14 @@
|
|
|
984
981
|
}
|
|
985
982
|
},
|
|
986
983
|
"node_modules/@forge/lint": {
|
|
987
|
-
"version": "5.6.5
|
|
988
|
-
"resolved": "https://registry.npmjs.org/@forge/lint/-/lint-5.6.5
|
|
989
|
-
"integrity": "sha512
|
|
984
|
+
"version": "5.6.5",
|
|
985
|
+
"resolved": "https://registry.npmjs.org/@forge/lint/-/lint-5.6.5.tgz",
|
|
986
|
+
"integrity": "sha512-+r0aTR84X7nwgw8QyqNE7Fl4sKZnFHTiL/7H1pLIKZb+C5J/aLWKWnkbZ70K4qAq+vKhhSIzy8wK0GBTgQiA1w==",
|
|
990
987
|
"license": "UNLICENSED",
|
|
991
988
|
"dependencies": {
|
|
992
|
-
"@forge/cli-shared": "6.5.2
|
|
989
|
+
"@forge/cli-shared": "6.5.2",
|
|
993
990
|
"@forge/egress": "1.3.0",
|
|
994
|
-
"@forge/manifest": "8.4.1
|
|
991
|
+
"@forge/manifest": "8.4.1",
|
|
995
992
|
"@typescript-eslint/typescript-estree": "^5.62.0",
|
|
996
993
|
"array.prototype.flatmap": "^1.3.2",
|
|
997
994
|
"atlassian-openapi": "^1.0.18",
|
|
@@ -1000,9 +997,9 @@
|
|
|
1000
997
|
}
|
|
1001
998
|
},
|
|
1002
999
|
"node_modules/@forge/manifest": {
|
|
1003
|
-
"version": "8.4.1
|
|
1004
|
-
"resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-8.4.1
|
|
1005
|
-
"integrity": "sha512-
|
|
1000
|
+
"version": "8.4.1",
|
|
1001
|
+
"resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-8.4.1.tgz",
|
|
1002
|
+
"integrity": "sha512-UxNBMQlcKGHrMpMyMKKPgNqfzIyd60jJCOQucEwutF0hLEantFk1s1FRAl0oqa9ZM7aG26oLUUFWNb+gUiWrHA==",
|
|
1006
1003
|
"license": "UNLICENSED",
|
|
1007
1004
|
"dependencies": {
|
|
1008
1005
|
"@forge/i18n": "0.0.2",
|
|
@@ -1033,14 +1030,14 @@
|
|
|
1033
1030
|
}
|
|
1034
1031
|
},
|
|
1035
1032
|
"node_modules/@forge/tunnel": {
|
|
1036
|
-
"version": "5.8.1
|
|
1037
|
-
"resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-5.8.1
|
|
1038
|
-
"integrity": "sha512
|
|
1033
|
+
"version": "5.8.1",
|
|
1034
|
+
"resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-5.8.1.tgz",
|
|
1035
|
+
"integrity": "sha512-LfSu6H+hAWiwHjPT3F7A4GawWHBqKbuPYWEhb8p9ZTDkD2B2fit8p+/aFD2Sa12sfwCMDh0e5Kf+G5rMLK0daw==",
|
|
1039
1036
|
"license": "UNLICENSED",
|
|
1040
1037
|
"dependencies": {
|
|
1041
|
-
"@forge/bundler": "4.20.5
|
|
1042
|
-
"@forge/cli-shared": "6.5.2
|
|
1043
|
-
"@forge/csp": "3.6.0
|
|
1038
|
+
"@forge/bundler": "4.20.5",
|
|
1039
|
+
"@forge/cli-shared": "6.5.2",
|
|
1040
|
+
"@forge/csp": "3.6.0",
|
|
1044
1041
|
"@forge/runtime": "5.10.4",
|
|
1045
1042
|
"chokidar": "^3.6.0",
|
|
1046
1043
|
"cloudflared": "^0.5.2",
|
|
@@ -1285,11 +1282,6 @@
|
|
|
1285
1282
|
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
|
|
1286
1283
|
"integrity": "sha1-XeWiOFo1MJQn9gEZkrVEUU1VmqE= sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g=="
|
|
1287
1284
|
},
|
|
1288
|
-
"node_modules/@sandfox/arn": {
|
|
1289
|
-
"version": "2.1.0",
|
|
1290
|
-
"resolved": "https://registry.npmjs.org/@sandfox/arn/-/arn-2.1.0.tgz",
|
|
1291
|
-
"integrity": "sha1-v+MIFn/vKZcFUHqkCxcxLIckcPI= sha512-KUW6t0yJ4YZ6RBoB+8/ypVhDI+ZAvrLtZxQC+1i0yD2SvWe4RXboLXB4wcmsjw+g+gMBeyYu9sQj4NTx787+FA=="
|
|
1292
|
-
},
|
|
1293
1285
|
"node_modules/@scarf/scarf": {
|
|
1294
1286
|
"version": "1.3.0",
|
|
1295
1287
|
"resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.3.0.tgz",
|
|
@@ -3620,14 +3612,6 @@
|
|
|
3620
3612
|
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
|
|
3621
3613
|
"integrity": "sha1-mJNG/+noObRVXs9WZu3qDT6K0Dc= sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
|
|
3622
3614
|
},
|
|
3623
|
-
"node_modules/diff": {
|
|
3624
|
-
"version": "7.0.0",
|
|
3625
|
-
"resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz",
|
|
3626
|
-
"integrity": "sha1-P7NNOHzXbYA/buvqZ7kh2rAYKpo= sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==",
|
|
3627
|
-
"engines": {
|
|
3628
|
-
"node": ">=0.3.1"
|
|
3629
|
-
}
|
|
3630
|
-
},
|
|
3631
3615
|
"node_modules/diffie-hellman": {
|
|
3632
3616
|
"version": "5.0.3",
|
|
3633
3617
|
"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
|
|
@@ -29,7 +29,6 @@ import { StubController } from './controller/stubController';
|
|
|
29
29
|
import { PrerequisitesController } from './controller/prerequisites-controller';
|
|
30
30
|
import { DefaultEnvironmentController } from './controller/default-environment-controller';
|
|
31
31
|
import { EligibilityController } from './controller/eligibility-controller';
|
|
32
|
-
import { VersionController } from './controller/version-controller';
|
|
33
32
|
export declare const getDependencies: (cliDetails: CLIDetails | undefined) => Promise<{
|
|
34
33
|
ui: CommandLineUI;
|
|
35
34
|
cmd: Command<[], import("./command").DefaultOpts>;
|
|
@@ -80,7 +79,6 @@ export declare const getDependencies: (cliDetails: CLIDetails | undefined) => Pr
|
|
|
80
79
|
stubController: StubController;
|
|
81
80
|
prerequisitesController: PrerequisitesController;
|
|
82
81
|
defaultEnvironmentController: DefaultEnvironmentController;
|
|
83
|
-
versionController: VersionController;
|
|
84
82
|
};
|
|
85
83
|
}>;
|
|
86
84
|
declare type PromiseType<T> = T extends Promise<infer R> ? R : never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAGlB,gBAAgB,EAQhB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EAElB,kBAAkB,EAKnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAUlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAGlB,gBAAgB,EAQhB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EAElB,kBAAkB,EAKnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAUlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmXvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
|
|
@@ -69,10 +69,6 @@ const graphql_client_8 = require("../eligibility/graphql-client");
|
|
|
69
69
|
const roa_service_1 = require("../service/roa-service");
|
|
70
70
|
const eligibility_controller_1 = require("./controller/eligibility-controller");
|
|
71
71
|
const eligibility_view_1 = require("./view/eligibility-view");
|
|
72
|
-
const version_controller_1 = require("./controller/version-controller");
|
|
73
|
-
const version_service_1 = require("../service/version-service");
|
|
74
|
-
const version_view_1 = require("./view/version-view");
|
|
75
|
-
const graphql_client_9 = require("../version/graphql-client");
|
|
76
72
|
const getDependencies = async (cliDetails) => {
|
|
77
73
|
let cmd;
|
|
78
74
|
const ui = new cli_shared_1.CommandLineUI(() => cmd.verbose);
|
|
@@ -168,7 +164,6 @@ const getDependencies = async (cliDetails) => {
|
|
|
168
164
|
const installController = new install_controller_1.InstallController(assertiveAppConfigReader, configFile, ui, installAppSiteCommand, installationsService, installView, statsigService);
|
|
169
165
|
const feedbackController = new feedback_controller_1.FeedbackController(credentialStore, feedbackPostClient);
|
|
170
166
|
const eligibilityController = new eligibility_controller_1.EligibilityController(new roa_service_1.RoaService(assertiveAppConfigReader, new graphql_client_8.RoaEligibilityClient(graphQLClient)), new eligibility_view_1.EligibilityView(ui));
|
|
171
|
-
const versionController = new version_controller_1.VersionController(new version_service_1.VersionService(assertiveAppConfigReader, new graphql_client_9.AppVersionDetailsClient(graphQLClient)), new version_view_1.VersionView(ui));
|
|
172
167
|
const lintService = new lint_service_1.LintService(configFile, fileReader);
|
|
173
168
|
const lintView = new lint_view_1.LintView(ui);
|
|
174
169
|
const lintController = new lint_controller_1.LintController(lintService, lintView);
|
|
@@ -247,8 +242,7 @@ const getDependencies = async (cliDetails) => {
|
|
|
247
242
|
settingsController,
|
|
248
243
|
stubController,
|
|
249
244
|
prerequisitesController,
|
|
250
|
-
defaultEnvironmentController
|
|
251
|
-
versionController
|
|
245
|
+
defaultEnvironmentController
|
|
252
246
|
}
|
|
253
247
|
};
|
|
254
248
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-line/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command-line/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAoBvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAiBlD;AAQD,eAAO,MAAM,IAAI,QAAa,QAAQ,IAAI,CAUzC,CAAC"}
|
|
@@ -20,7 +20,6 @@ const register_providers_commands_1 = require("./register-providers-commands");
|
|
|
20
20
|
const register_environments_commands_1 = require("./register-environments-commands");
|
|
21
21
|
const register_storage_commands_1 = require("./register-storage-commands");
|
|
22
22
|
const register_eligibility_commands_1 = require("./register-eligibility-commands");
|
|
23
|
-
const register_version_commands_1 = require("./register-version-commands");
|
|
24
23
|
function registerCommands(deps) {
|
|
25
24
|
(0, register_autocomplete_commands_1.registerCommands)(deps);
|
|
26
25
|
(0, register_authentication_command_1.registerCommands)(deps);
|
|
@@ -38,7 +37,6 @@ function registerCommands(deps) {
|
|
|
38
37
|
(0, register_providers_commands_1.registerCommands)(deps);
|
|
39
38
|
(0, register_storage_commands_1.registerCommands)(deps);
|
|
40
39
|
(0, register_eligibility_commands_1.registerCommands)(deps);
|
|
41
|
-
(0, register_version_commands_1.registerCommands)(deps);
|
|
42
40
|
}
|
|
43
41
|
exports.registerCommands = registerCommands;
|
|
44
42
|
const registerEvents = ({ ui }) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/cli",
|
|
3
|
-
"version": "10.13.4
|
|
3
|
+
"version": "10.13.4",
|
|
4
4
|
"description": "A command line interface for managing Atlassian-hosted apps",
|
|
5
5
|
"author": "Atlassian",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -18,17 +18,16 @@
|
|
|
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.20.5
|
|
22
|
-
"@forge/cli-shared": "6.5.2
|
|
21
|
+
"@forge/bundler": "4.20.5",
|
|
22
|
+
"@forge/cli-shared": "6.5.2",
|
|
23
23
|
"@forge/egress": "1.3.0",
|
|
24
|
-
"@forge/lint": "5.6.5
|
|
25
|
-
"@forge/manifest": "8.4.1
|
|
24
|
+
"@forge/lint": "5.6.5",
|
|
25
|
+
"@forge/manifest": "8.4.1",
|
|
26
26
|
"@forge/runtime": "5.10.4",
|
|
27
|
-
"@forge/tunnel": "5.8.1
|
|
27
|
+
"@forge/tunnel": "5.8.1",
|
|
28
28
|
"@forge/util": "1.4.6",
|
|
29
29
|
"@sentry/node": "7.106.0",
|
|
30
30
|
"@forge/i18n": "0.0.2",
|
|
31
|
-
"@sandfox/arn": "^2.1.0",
|
|
32
31
|
"ajv": "^8.12.0",
|
|
33
32
|
"archiver": "^6.0.2",
|
|
34
33
|
"case": "^1.6.3",
|
|
@@ -40,7 +39,6 @@
|
|
|
40
39
|
"cross-spawn": "^7.0.3",
|
|
41
40
|
"dayjs": "^1.11.10",
|
|
42
41
|
"didyoumean": "^1.2.2",
|
|
43
|
-
"diff": "^7.0.0",
|
|
44
42
|
"env-paths": "^2.2.1",
|
|
45
43
|
"exponential-backoff": "^3.1.1",
|
|
46
44
|
"form-data": "^4.0.0",
|
|
@@ -65,7 +63,6 @@
|
|
|
65
63
|
"@types/command-exists": "^1.2.3",
|
|
66
64
|
"@types/cross-spawn": "^6.0.6",
|
|
67
65
|
"@types/didyoumean": "^1.2.2",
|
|
68
|
-
"@types/diff": "^6.0.0",
|
|
69
66
|
"@types/fs-extra": "^11.0.4",
|
|
70
67
|
"@types/hidefile": "^3.0.3",
|
|
71
68
|
"@types/inquirer": "^8.2.10",
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { VersionView } from '../view/version-view';
|
|
2
|
-
import { VersionService } from '../../service/version-service';
|
|
3
|
-
interface AppVersionOptions {
|
|
4
|
-
environment: string;
|
|
5
|
-
majorVersion?: number;
|
|
6
|
-
json?: boolean;
|
|
7
|
-
outFile?: string;
|
|
8
|
-
nonInteractive?: boolean;
|
|
9
|
-
}
|
|
10
|
-
interface AppVersionDiffOptions {
|
|
11
|
-
environment: string;
|
|
12
|
-
version1: number;
|
|
13
|
-
version2: number;
|
|
14
|
-
outFile?: string;
|
|
15
|
-
}
|
|
16
|
-
interface AppVersionListOptions {
|
|
17
|
-
environment: string;
|
|
18
|
-
json?: boolean;
|
|
19
|
-
outFile?: string;
|
|
20
|
-
nonInteractive?: boolean;
|
|
21
|
-
}
|
|
22
|
-
export declare class VersionController {
|
|
23
|
-
private readonly versionService;
|
|
24
|
-
private readonly view;
|
|
25
|
-
constructor(versionService: VersionService, view: VersionView);
|
|
26
|
-
getAppVersionDiff({ environment, version1, version2, outFile }: AppVersionDiffOptions): Promise<void>;
|
|
27
|
-
getAppVersionDetails({ environment, majorVersion, json, outFile, nonInteractive }: AppVersionOptions): Promise<void>;
|
|
28
|
-
private writeToFile;
|
|
29
|
-
private displayInJson;
|
|
30
|
-
private displayDetailsInTable;
|
|
31
|
-
private displayDiffInText;
|
|
32
|
-
private writeDiffToFile;
|
|
33
|
-
getVersionList({ environment, json, outFile, nonInteractive }: AppVersionListOptions): Promise<void>;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
36
|
-
//# sourceMappingURL=version-controller.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/version-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAkB,MAAM,+BAA+B,CAAC;AAI/E,UAAU,iBAAiB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,qBAAqB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,qBAAqB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,WAAW;IAGvB,iBAAiB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBrG,oBAAoB,CAAC,EAChC,WAAW,EACX,YAAY,EACZ,IAAY,EACZ,OAAO,EACP,cAAc,EACf,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCpC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,eAAe;IAWV,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBlH"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VersionController = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const fs_1 = require("fs");
|
|
6
|
-
const diff = tslib_1.__importStar(require("diff"));
|
|
7
|
-
class VersionController {
|
|
8
|
-
versionService;
|
|
9
|
-
view;
|
|
10
|
-
constructor(versionService, view) {
|
|
11
|
-
this.versionService = versionService;
|
|
12
|
-
this.view = view;
|
|
13
|
-
}
|
|
14
|
-
async getAppVersionDiff({ environment, version1, version2, outFile }) {
|
|
15
|
-
const [version1Details, version2Details] = await this.view.displayDiffProgress(() => Promise.all([
|
|
16
|
-
this.versionService.getAppVersionDetails(environment, version1),
|
|
17
|
-
this.versionService.getAppVersionDetails(environment, version2)
|
|
18
|
-
]));
|
|
19
|
-
const omitRegions = (versionDetails) => {
|
|
20
|
-
return {
|
|
21
|
-
...versionDetails,
|
|
22
|
-
functions: versionDetails.functions?.map((f) => {
|
|
23
|
-
const { regions, ...rest } = f;
|
|
24
|
-
return rest;
|
|
25
|
-
})
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
if (outFile) {
|
|
29
|
-
this.writeDiffToFile(omitRegions(version1Details), omitRegions(version2Details), outFile);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
this.displayDiffInText(omitRegions(version1Details), omitRegions(version2Details), environment);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async getAppVersionDetails({ environment, majorVersion, json = false, outFile, nonInteractive }) {
|
|
36
|
-
const defaultProperties = ['appVersion', 'deploymentDateTime', 'environmentType'];
|
|
37
|
-
let filteredProperties = [];
|
|
38
|
-
if (!nonInteractive) {
|
|
39
|
-
filteredProperties = await this.view.promptVersionDetailsProperties();
|
|
40
|
-
}
|
|
41
|
-
const request = this.versionService.getAppVersionDetails(environment, majorVersion);
|
|
42
|
-
const versionDetails = nonInteractive ? await request : await this.view.displayDetailsProgress(() => request);
|
|
43
|
-
if (filteredProperties.length === 0) {
|
|
44
|
-
filteredProperties = Object.keys(versionDetails);
|
|
45
|
-
}
|
|
46
|
-
const filteredVersionDetails = Object.keys(versionDetails)
|
|
47
|
-
.filter((key) => [...filteredProperties, ...defaultProperties].includes(key))
|
|
48
|
-
.reduce((obj, key) => {
|
|
49
|
-
obj[key] = versionDetails[key];
|
|
50
|
-
return obj;
|
|
51
|
-
}, {});
|
|
52
|
-
if (outFile) {
|
|
53
|
-
this.writeToFile(filteredVersionDetails, outFile);
|
|
54
|
-
}
|
|
55
|
-
else if (json) {
|
|
56
|
-
this.displayInJson(filteredVersionDetails);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.displayDetailsInTable(filteredVersionDetails, environment);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
writeToFile(data, outFile) {
|
|
63
|
-
this.view.displayWriteToFile(outFile);
|
|
64
|
-
(0, fs_1.writeFileSync)(outFile, JSON.stringify(data, null, 2));
|
|
65
|
-
}
|
|
66
|
-
displayInJson(data) {
|
|
67
|
-
this.view.displayDataInJson(data);
|
|
68
|
-
}
|
|
69
|
-
displayDetailsInTable(details, environment) {
|
|
70
|
-
this.view.displayVersionDetailsBanner(details.appVersion, environment, details.environmentType);
|
|
71
|
-
this.view.displayDetailsAsTable(details);
|
|
72
|
-
}
|
|
73
|
-
displayDiffInText(version1, version2, environment) {
|
|
74
|
-
this.view.displayDiffBanner(version1.appVersion, version2.appVersion, environment, version1.environmentType);
|
|
75
|
-
this.view.displayDiffAsTable({ v1: version1.appVersion, v2: version2.appVersion }, [
|
|
76
|
-
{
|
|
77
|
-
key: 'scopes',
|
|
78
|
-
diff: diff.diffJson(version1.scopes, version2.scopes)
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
key: 'deployment date',
|
|
82
|
-
diff: diff.diffJson(version1.deploymentDateTime, version2.deploymentDateTime)
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
key: 'egress',
|
|
86
|
-
diff: diff.diffJson(version1.egresses, version2.egresses)
|
|
87
|
-
},
|
|
88
|
-
{ key: 'policies', diff: diff.diffJson(version1.policies || [], version2.policies || []) },
|
|
89
|
-
{ key: 'connect keys', diff: diff.diffJson(version1.connectKeys || [], version2.connectKeys || []) },
|
|
90
|
-
{
|
|
91
|
-
key: 'functions',
|
|
92
|
-
diff: diff.diffJson(version1.functions || [], version2.functions || [])
|
|
93
|
-
},
|
|
94
|
-
{ key: 'modules', diff: diff.diffJson(version1.modules || [], version2.modules || []) },
|
|
95
|
-
{ key: 'remotes', diff: diff.diffJson(version1.remotes || [], version2.remotes || []) },
|
|
96
|
-
{ key: 'license', diff: diff.diffJson('' + version1.requiresLicense, '' + version2.requiresLicense) }
|
|
97
|
-
]);
|
|
98
|
-
}
|
|
99
|
-
writeDiffToFile(version1, version2, outFile) {
|
|
100
|
-
this.view.displayWriteToFile(outFile);
|
|
101
|
-
const patch = diff.createTwoFilesPatch(`${version1.appVersion}`, `${version2.appVersion}`, JSON.stringify(version1, null, 2), JSON.stringify(version2, null, 2));
|
|
102
|
-
(0, fs_1.writeFileSync)(outFile, patch);
|
|
103
|
-
}
|
|
104
|
-
async getVersionList({ environment, json, outFile, nonInteractive }) {
|
|
105
|
-
const request = this.versionService.getAppVersionOverviewList(environment);
|
|
106
|
-
const versionList = nonInteractive || json ? await request : await this.view.displayListProgress(() => request);
|
|
107
|
-
if (!nonInteractive && !json) {
|
|
108
|
-
this.view.displayListBanner(versionList.length, environment, versionList[0].environmentType);
|
|
109
|
-
}
|
|
110
|
-
if (outFile) {
|
|
111
|
-
this.writeToFile(versionList, outFile);
|
|
112
|
-
}
|
|
113
|
-
else if (json) {
|
|
114
|
-
this.displayInJson(versionList);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
this.view.displayVersionList(versionList);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
exports.VersionController = VersionController;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Dependencies } from './dependency-injection';
|
|
2
|
-
export declare function parseMajorVersion(majorVersionStr: string, property?: string): number;
|
|
3
|
-
export declare const registerCommands: (deps: Dependencies) => void;
|
|
4
|
-
//# sourceMappingURL=register-version-commands.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-version-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-version-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAKpF;AA2DD,eAAO,MAAM,gBAAgB,SAAU,YAAY,SAMlD,CAAC"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerCommands = exports.parseMajorVersion = void 0;
|
|
4
|
-
const cli_shared_1 = require("@forge/cli-shared");
|
|
5
|
-
function parseMajorVersion(majorVersionStr, property) {
|
|
6
|
-
if (!/^\d+$/.test(majorVersionStr)) {
|
|
7
|
-
throw new cli_shared_1.ValidationError(cli_shared_1.Text.version.check.error.invalidMajorVersion(property));
|
|
8
|
-
}
|
|
9
|
-
return parseInt(majorVersionStr, 10);
|
|
10
|
-
}
|
|
11
|
-
exports.parseMajorVersion = parseMajorVersion;
|
|
12
|
-
const registerDetailsCommands = (parent, { controllers: { versionController } }) => {
|
|
13
|
-
parent
|
|
14
|
-
.command(cli_shared_1.Text.version.check.cmdName)
|
|
15
|
-
.description(cli_shared_1.Text.version.check.desc)
|
|
16
|
-
.requireAppId()
|
|
17
|
-
.environmentOption()
|
|
18
|
-
.nonInteractiveOption()
|
|
19
|
-
.option('-v, --major-version [version]', cli_shared_1.Text.version.check.option.majorVersion)
|
|
20
|
-
.option('--json', cli_shared_1.Text.version.check.option.json)
|
|
21
|
-
.option('-f, --out-file [outFile]', cli_shared_1.Text.version.check.option.outFile)
|
|
22
|
-
.action(async ({ environment, majorVersion, json, outFile, nonInteractive }) => {
|
|
23
|
-
const majorVersionInt = majorVersion ? parseMajorVersion(majorVersion) : undefined;
|
|
24
|
-
await versionController.getAppVersionDetails({
|
|
25
|
-
environment,
|
|
26
|
-
majorVersion: majorVersionInt,
|
|
27
|
-
json,
|
|
28
|
-
outFile,
|
|
29
|
-
nonInteractive
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
const registerListCommands = (parent, { controllers: { versionController } }) => {
|
|
34
|
-
parent
|
|
35
|
-
.command(cli_shared_1.Text.version.list.cmdName)
|
|
36
|
-
.description(cli_shared_1.Text.version.list.desc)
|
|
37
|
-
.requireAppId()
|
|
38
|
-
.environmentOption()
|
|
39
|
-
.nonInteractiveOption()
|
|
40
|
-
.option('--json', cli_shared_1.Text.version.list.option.json)
|
|
41
|
-
.option('-f, --out-file [outFile]', cli_shared_1.Text.version.list.option.outFile)
|
|
42
|
-
.action(async ({ environment, json, outFile, nonInteractive }) => {
|
|
43
|
-
await versionController.getVersionList({ environment, json, outFile, nonInteractive });
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
const registerDiffCommands = (parent, { controllers: { versionController } }) => {
|
|
47
|
-
parent
|
|
48
|
-
.command(cli_shared_1.Text.version.diff.cmdName)
|
|
49
|
-
.description(cli_shared_1.Text.version.diff.desc)
|
|
50
|
-
.requireAppId()
|
|
51
|
-
.environmentOption()
|
|
52
|
-
.nonInteractiveOption()
|
|
53
|
-
.option('-v1, --version1 [version]', cli_shared_1.Text.version.diff.option.version1)
|
|
54
|
-
.option('-v2, --version2 [version]', cli_shared_1.Text.version.diff.option.version2)
|
|
55
|
-
.option('-f, --out-file [outFile]', cli_shared_1.Text.version.diff.option.outFile)
|
|
56
|
-
.action(async ({ environment, version1, version2, outFile }) => {
|
|
57
|
-
if (!version1 || !version2) {
|
|
58
|
-
throw new cli_shared_1.ValidationError(cli_shared_1.Text.version.diff.error.noVersionProvided);
|
|
59
|
-
}
|
|
60
|
-
const version1Int = parseMajorVersion(version1, '--version1');
|
|
61
|
-
const version2Int = parseMajorVersion(version2, '--version2');
|
|
62
|
-
await versionController.getAppVersionDiff({ environment, version1: version1Int, version2: version2Int, outFile });
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
const registerCommands = (deps) => {
|
|
66
|
-
const { cmd } = deps;
|
|
67
|
-
const version = cmd.command(cli_shared_1.Text.version.cmd.cmdName).description(cli_shared_1.Text.version.cmd.desc);
|
|
68
|
-
registerDetailsCommands(version, deps);
|
|
69
|
-
registerDiffCommands(version, deps);
|
|
70
|
-
registerListCommands(version, deps);
|
|
71
|
-
};
|
|
72
|
-
exports.registerCommands = registerCommands;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { AppEnvironmentType, UI } from '@forge/cli-shared';
|
|
2
|
-
import { VersionDetails, VersionOverview } from '../../service/version-service';
|
|
3
|
-
import { Change } from 'diff';
|
|
4
|
-
export declare class VersionView {
|
|
5
|
-
private readonly ui;
|
|
6
|
-
constructor(ui: UI);
|
|
7
|
-
displayDetailsProgress(progress: () => Promise<VersionDetails>): Promise<VersionDetails>;
|
|
8
|
-
displayDiffProgress(progress: () => Promise<VersionDetails[]>): Promise<VersionDetails[]>;
|
|
9
|
-
displayListProgress(progress: () => Promise<VersionOverview[]>): Promise<VersionOverview[]>;
|
|
10
|
-
promptVersionDetailsProperties(): Promise<(keyof VersionDetails)[]>;
|
|
11
|
-
displayVersionDetailsBanner(appVersion: number, envKey: string, envType: AppEnvironmentType): void;
|
|
12
|
-
displayDetailsAsTable(details: VersionDetails): void;
|
|
13
|
-
displayDataInJson(data: VersionDetails): void;
|
|
14
|
-
displayDiffBanner(version1: number, version2: number, envKey: string, envType: AppEnvironmentType): void;
|
|
15
|
-
displayDiffAsTable(versions: {
|
|
16
|
-
v1: number;
|
|
17
|
-
v2: number;
|
|
18
|
-
}, input: {
|
|
19
|
-
key: string;
|
|
20
|
-
diff: Change[];
|
|
21
|
-
}[]): void;
|
|
22
|
-
displayListBanner(versions: number, envKey: string, envType: AppEnvironmentType): void;
|
|
23
|
-
displayWriteToFile(outFile: string): void;
|
|
24
|
-
displayVersionList(data: VersionOverview[]): void;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=version-view.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-view.d.ts","sourceRoot":"","sources":["../../../src/command-line/view/version-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAQ,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG9B,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEtB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAIxF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIzF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAI3F,8BAA8B,IAAI,OAAO,CAAC,CAAC,MAAM,cAAc,CAAC,EAAE,CAAC;IAsDzE,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAMlG,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IA0DpD,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAI7C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAMxG,kBAAkB,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,GAAG,IAAI;IAkCxG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAMtF,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI;CAwBzD"}
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VersionView = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const cli_shared_1 = require("@forge/cli-shared");
|
|
6
|
-
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
|
-
class VersionView {
|
|
8
|
-
ui;
|
|
9
|
-
constructor(ui) {
|
|
10
|
-
this.ui = ui;
|
|
11
|
-
}
|
|
12
|
-
async displayDetailsProgress(progress) {
|
|
13
|
-
return this.ui.displayProgress(progress, cli_shared_1.Text.version.check.start, cli_shared_1.Text.version.check.end);
|
|
14
|
-
}
|
|
15
|
-
async displayDiffProgress(progress) {
|
|
16
|
-
return this.ui.displayProgress(progress, cli_shared_1.Text.version.diff.start, cli_shared_1.Text.version.diff.end);
|
|
17
|
-
}
|
|
18
|
-
async displayListProgress(progress) {
|
|
19
|
-
return this.ui.displayProgress(progress, cli_shared_1.Text.version.list.start, cli_shared_1.Text.version.list.end);
|
|
20
|
-
}
|
|
21
|
-
async promptVersionDetailsProperties() {
|
|
22
|
-
const propsOptions = [
|
|
23
|
-
{
|
|
24
|
-
names: ['License', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.license],
|
|
25
|
-
property: 'requiresLicense'
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
names: ['Scopes', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.scopes],
|
|
29
|
-
property: 'scopes'
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
names: ['Egress', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.egress],
|
|
33
|
-
property: 'egresses'
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
names: ['Policies', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.policies],
|
|
37
|
-
property: 'policies'
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
names: ['Connect Key', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.connectKeys],
|
|
41
|
-
property: 'connectKeys'
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
names: ['Functions', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.functions],
|
|
45
|
-
property: 'functions'
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
names: ['Modules', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.modules],
|
|
49
|
-
property: 'modules'
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
names: ['Remotes', cli_shared_1.Text.version.check.details.prompt.properties.descriptions.remotes],
|
|
53
|
-
property: 'remotes'
|
|
54
|
-
}
|
|
55
|
-
];
|
|
56
|
-
const allOrNot = await this.ui.promptForList(cli_shared_1.Text.version.check.details.prompt.options.banner, [
|
|
57
|
-
cli_shared_1.Text.version.check.details.prompt.options.choices.all,
|
|
58
|
-
cli_shared_1.Text.version.check.details.prompt.options.choices.manual
|
|
59
|
-
]);
|
|
60
|
-
if (allOrNot === cli_shared_1.Text.version.check.details.prompt.options.choices.manual) {
|
|
61
|
-
const choices = await this.ui.promptForTable(cli_shared_1.Text.version.check.details.prompt.properties.banner, cli_shared_1.Text.version.check.details.prompt.properties.info, cli_shared_1.Text.version.check.details.prompt.properties.headers, propsOptions);
|
|
62
|
-
return choices.map((index) => propsOptions[index].property);
|
|
63
|
-
}
|
|
64
|
-
return [];
|
|
65
|
-
}
|
|
66
|
-
displayVersionDetailsBanner(appVersion, envKey, envType) {
|
|
67
|
-
this.ui.emptyLine();
|
|
68
|
-
this.ui.info(cli_shared_1.Text.version.check.details.banner(envKey, envType, appVersion));
|
|
69
|
-
this.ui.emptyLine();
|
|
70
|
-
}
|
|
71
|
-
displayDetailsAsTable(details) {
|
|
72
|
-
this.ui.table([
|
|
73
|
-
['entry', 'Property'],
|
|
74
|
-
['details', 'Details']
|
|
75
|
-
], [
|
|
76
|
-
{
|
|
77
|
-
entry: 'deployment date',
|
|
78
|
-
details: cli_shared_1.Text.version.check.details.deploymentDate(details.deploymentDateTime),
|
|
79
|
-
property: 'deploymentDateTime'
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
entry: 'functions',
|
|
83
|
-
details: cli_shared_1.Text.version.check.details.functions(details.functions || []),
|
|
84
|
-
property: 'functions'
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
entry: 'modules',
|
|
88
|
-
details: cli_shared_1.Text.version.check.details.modules(details.modules || []),
|
|
89
|
-
property: 'modules'
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
entry: 'license',
|
|
93
|
-
details: cli_shared_1.Text.version.check.details.license(details.requiresLicense),
|
|
94
|
-
property: 'requiresLicense'
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
entry: 'scopes',
|
|
98
|
-
details: cli_shared_1.Text.version.check.details.scopes(details.scopes || []),
|
|
99
|
-
property: 'scopes'
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
entry: 'egress',
|
|
103
|
-
details: cli_shared_1.Text.version.check.details.egress(details.egresses || []),
|
|
104
|
-
property: 'egresses'
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
entry: 'policies',
|
|
108
|
-
details: cli_shared_1.Text.version.check.details.securityPolicies(details.policies || []),
|
|
109
|
-
property: 'policies'
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
entry: 'connect keys',
|
|
113
|
-
details: cli_shared_1.Text.version.check.details.connectKeys(details.connectKeys || []),
|
|
114
|
-
property: 'connectKeys'
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
entry: 'remotes',
|
|
118
|
-
details: cli_shared_1.Text.version.check.details.remotes(details.remotes || []),
|
|
119
|
-
property: 'remotes'
|
|
120
|
-
}
|
|
121
|
-
]
|
|
122
|
-
.sort((a, b) => a.entry.localeCompare(b.entry))
|
|
123
|
-
.filter(({ property }) => Object.keys(details).includes(property)));
|
|
124
|
-
}
|
|
125
|
-
displayDataInJson(data) {
|
|
126
|
-
this.ui.info(JSON.stringify(data, null, 2));
|
|
127
|
-
}
|
|
128
|
-
displayDiffBanner(version1, version2, envKey, envType) {
|
|
129
|
-
this.ui.emptyLine();
|
|
130
|
-
this.ui.info(cli_shared_1.Text.version.diff.details.banner(envKey, envType, version1, version2));
|
|
131
|
-
this.ui.emptyLine();
|
|
132
|
-
}
|
|
133
|
-
displayDiffAsTable(versions, input) {
|
|
134
|
-
this.ui.table([
|
|
135
|
-
['entry', 'Property'],
|
|
136
|
-
['v1', `Version 1 [${versions.v1}]`],
|
|
137
|
-
['v2', `Version 2 [${versions.v2}]`]
|
|
138
|
-
], input
|
|
139
|
-
.filter(({ diff }) => diff.filter((change) => change.added || change.removed).length > 0)
|
|
140
|
-
.map(({ key, diff }) => ({
|
|
141
|
-
entry: key,
|
|
142
|
-
v1: diff
|
|
143
|
-
.filter((change) => !change.added)
|
|
144
|
-
.map((change) => {
|
|
145
|
-
if (!change.removed) {
|
|
146
|
-
return chalk_1.default.gray(change.value);
|
|
147
|
-
}
|
|
148
|
-
return change.value;
|
|
149
|
-
})
|
|
150
|
-
.join(''),
|
|
151
|
-
v2: diff
|
|
152
|
-
.filter((change) => !change.removed)
|
|
153
|
-
.map((change) => {
|
|
154
|
-
if (!change.added) {
|
|
155
|
-
return chalk_1.default.gray(change.value);
|
|
156
|
-
}
|
|
157
|
-
return change.value;
|
|
158
|
-
})
|
|
159
|
-
.join('')
|
|
160
|
-
}))
|
|
161
|
-
.sort((a, b) => a.entry.localeCompare(b.entry)));
|
|
162
|
-
}
|
|
163
|
-
displayListBanner(versions, envKey, envType) {
|
|
164
|
-
this.ui.emptyLine();
|
|
165
|
-
this.ui.info(cli_shared_1.Text.version.list.details.banner(envKey, envType, versions));
|
|
166
|
-
this.ui.emptyLine();
|
|
167
|
-
}
|
|
168
|
-
displayWriteToFile(outFile) {
|
|
169
|
-
this.ui.info(cli_shared_1.Text.version.check.details.writeToFile(outFile));
|
|
170
|
-
}
|
|
171
|
-
displayVersionList(data) {
|
|
172
|
-
this.ui.table([
|
|
173
|
-
['version', 'Major Versions'],
|
|
174
|
-
['deploymentDate', 'Deployment Date'],
|
|
175
|
-
['egresses', 'Egress'],
|
|
176
|
-
['policies', 'Policies'],
|
|
177
|
-
['scopes', 'Scopes'],
|
|
178
|
-
['connectKeys', 'Connect keys'],
|
|
179
|
-
['functions', 'Functions'],
|
|
180
|
-
['remotes', 'Remotes'],
|
|
181
|
-
['modules', 'Modules'],
|
|
182
|
-
['requiresLicense', 'License']
|
|
183
|
-
], data.map(({ version, egresses, modules, policies, deploymentDateTime, ...rest }) => ({
|
|
184
|
-
...rest,
|
|
185
|
-
version: version.toString(),
|
|
186
|
-
deploymentDate: cli_shared_1.Text.version.list.details.deploymentDate(deploymentDateTime),
|
|
187
|
-
egresses: cli_shared_1.Text.version.list.details.egresses(egresses),
|
|
188
|
-
policies: cli_shared_1.Text.version.list.details.policies(policies),
|
|
189
|
-
modules: cli_shared_1.Text.version.list.details.modules(modules)
|
|
190
|
-
})));
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
exports.VersionView = VersionView;
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { AppConfigProvider, AppEnvironmentType } from '@forge/cli-shared';
|
|
2
|
-
import { AppVersionDetailsClient } from '../version/graphql-client';
|
|
3
|
-
export interface VersionDetails {
|
|
4
|
-
appVersion: number;
|
|
5
|
-
deploymentDateTime: Date;
|
|
6
|
-
environmentType: AppEnvironmentType;
|
|
7
|
-
functions: {
|
|
8
|
-
key: string;
|
|
9
|
-
runtimeName: string;
|
|
10
|
-
regions: string[];
|
|
11
|
-
handler: string;
|
|
12
|
-
}[] | undefined;
|
|
13
|
-
modules: {
|
|
14
|
-
type: string;
|
|
15
|
-
items: {
|
|
16
|
-
key: string;
|
|
17
|
-
properties: any;
|
|
18
|
-
}[];
|
|
19
|
-
}[];
|
|
20
|
-
requiresLicense: boolean;
|
|
21
|
-
egresses: {
|
|
22
|
-
type: string;
|
|
23
|
-
addresses: string[];
|
|
24
|
-
}[];
|
|
25
|
-
scopes: string[];
|
|
26
|
-
policies: {
|
|
27
|
-
type: string;
|
|
28
|
-
policies: string[];
|
|
29
|
-
}[];
|
|
30
|
-
connectKeys: {
|
|
31
|
-
product: string;
|
|
32
|
-
key: string;
|
|
33
|
-
}[] | undefined;
|
|
34
|
-
remotes: {
|
|
35
|
-
key: string;
|
|
36
|
-
baseUrl: string;
|
|
37
|
-
operations: string[];
|
|
38
|
-
}[] | undefined;
|
|
39
|
-
}
|
|
40
|
-
export interface VersionOverview {
|
|
41
|
-
version: number;
|
|
42
|
-
deploymentDateTime: Date;
|
|
43
|
-
environmentType: AppEnvironmentType;
|
|
44
|
-
egresses: {
|
|
45
|
-
type: string;
|
|
46
|
-
count: number;
|
|
47
|
-
}[];
|
|
48
|
-
policies: {
|
|
49
|
-
type: string;
|
|
50
|
-
count: number;
|
|
51
|
-
}[];
|
|
52
|
-
scopes: string;
|
|
53
|
-
connectKeys: string;
|
|
54
|
-
functions: string;
|
|
55
|
-
remotes: string;
|
|
56
|
-
modules: {
|
|
57
|
-
type: string;
|
|
58
|
-
count: number;
|
|
59
|
-
}[];
|
|
60
|
-
requiresLicense: boolean;
|
|
61
|
-
}
|
|
62
|
-
export declare class VersionService {
|
|
63
|
-
private readonly getAppConfig;
|
|
64
|
-
private readonly versionDetailsClient;
|
|
65
|
-
constructor(getAppConfig: AppConfigProvider, versionDetailsClient: AppVersionDetailsClient);
|
|
66
|
-
private getMajorVersion;
|
|
67
|
-
getAppVersionDetails(environmentKey: string, majorVersion?: number): Promise<VersionDetails>;
|
|
68
|
-
private getTypeFromPermissionType;
|
|
69
|
-
private getModulesGroupedByTypes;
|
|
70
|
-
private removeInternalPropertiesFromObject;
|
|
71
|
-
private getAppVersions;
|
|
72
|
-
getAppVersionOverviewList(environmentKey: string): Promise<VersionOverview[]>;
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=version-service.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"version-service.d.ts","sourceRoot":"","sources":["../../src/service/version-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAInB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,IAAI,CAAC;IACzB,eAAe,EAAE,kBAAkB,CAAC;IACpC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC;IAClG,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,GAAG,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,CAAC;IACvE,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAClD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACjD,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC;IAC5D,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,GAAG,SAAS,CAAC;CAC/E;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,IAAI,CAAC;IACzB,eAAe,EAAE,kBAAkB,CAAC;IACpC,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBADpB,YAAY,EAAE,iBAAiB,EAC/B,oBAAoB,EAAE,uBAAuB;IAGhE,OAAO,CAAC,eAAe;IAIV,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA+EzG,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,kCAAkC;YAM5B,cAAc;IAKf,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CAsB3F"}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VersionService = void 0;
|
|
4
|
-
const cli_shared_1 = require("@forge/cli-shared");
|
|
5
|
-
const manifest_1 = require("@forge/manifest");
|
|
6
|
-
const arn_1 = require("@sandfox/arn");
|
|
7
|
-
class VersionService {
|
|
8
|
-
getAppConfig;
|
|
9
|
-
versionDetailsClient;
|
|
10
|
-
constructor(getAppConfig, versionDetailsClient) {
|
|
11
|
-
this.getAppConfig = getAppConfig;
|
|
12
|
-
this.versionDetailsClient = versionDetailsClient;
|
|
13
|
-
}
|
|
14
|
-
getMajorVersion(version) {
|
|
15
|
-
return parseInt(version.split('.')[0]);
|
|
16
|
-
}
|
|
17
|
-
async getAppVersionDetails(environmentKey, majorVersion) {
|
|
18
|
-
const { id: appId } = await this.getAppConfig();
|
|
19
|
-
const data = await this.versionDetailsClient.getVersionDetails(appId, environmentKey, majorVersion);
|
|
20
|
-
const functionModules = data.modules?.filter((mod) => mod?.extensionData.type === manifest_1.AllModuleTypes.CoreFunction);
|
|
21
|
-
const remoteModules = data.modules?.filter((mod) => mod?.extensionData.type === manifest_1.AllModuleTypes.CoreRemote);
|
|
22
|
-
const allModules = this.getModulesGroupedByTypes(data.modules);
|
|
23
|
-
return {
|
|
24
|
-
requiresLicense: data.requiresLicense,
|
|
25
|
-
egresses: data.permissions?.[0].egress
|
|
26
|
-
?.filter((entry) => entry !== undefined && entry !== null)
|
|
27
|
-
.filter((entry) => {
|
|
28
|
-
if (entry.type === 'FETCH_BACKEND_SIDE') {
|
|
29
|
-
entry.addresses = entry.addresses?.filter((address) => !remoteModules?.map((remote) => remote?.extensionData.baseUrl).includes(address));
|
|
30
|
-
}
|
|
31
|
-
return entry;
|
|
32
|
-
})
|
|
33
|
-
.filter((entry) => entry?.addresses?.length !== 0)
|
|
34
|
-
.map((entry) => ({
|
|
35
|
-
type: this.getTypeFromPermissionType(entry?.type),
|
|
36
|
-
addresses: entry.addresses
|
|
37
|
-
})) || [],
|
|
38
|
-
scopes: data.permissions?.[0].scopes.map((scope) => scope.key).sort() || [],
|
|
39
|
-
policies: data.permissions?.[0].securityPolicies
|
|
40
|
-
?.filter((entry) => entry.type !== undefined && entry.type !== null)
|
|
41
|
-
.map((entry) => ({
|
|
42
|
-
type: this.getTypeFromPermissionType(entry?.type),
|
|
43
|
-
policies: entry.policies
|
|
44
|
-
})) || [],
|
|
45
|
-
connectKeys: data.migrationKeys
|
|
46
|
-
? Object.keys(data.migrationKeys).map((key) => ({
|
|
47
|
-
product: key,
|
|
48
|
-
key: data.migrationKeys[key]
|
|
49
|
-
}))
|
|
50
|
-
: undefined,
|
|
51
|
-
appVersion: this.getMajorVersion(data.appVersion),
|
|
52
|
-
deploymentDateTime: data.deploymentDateTime,
|
|
53
|
-
environmentType: data.environmentType,
|
|
54
|
-
functions: functionModules?.map((entry) => ({
|
|
55
|
-
key: entry?.key || 'N/A',
|
|
56
|
-
runtimeName: (entry?.extensionData.functions?.[Object.keys(entry?.extensionData.functions || {})[0]]?.runtime
|
|
57
|
-
?.identifier ||
|
|
58
|
-
entry?.extensionData.runtime?.identifier ||
|
|
59
|
-
'sandbox')
|
|
60
|
-
.replace('provided.al2', 'sandbox')
|
|
61
|
-
.replace('provided', 'sandbox'),
|
|
62
|
-
regions: entry?.extensionData.functions
|
|
63
|
-
? Object.keys(entry?.extensionData.functions)
|
|
64
|
-
: [(0, arn_1.parse)(entry?.extensionData.functionName).region],
|
|
65
|
-
handler: entry?.extensionData.handler
|
|
66
|
-
})) || [],
|
|
67
|
-
modules: Object.keys(allModules)
|
|
68
|
-
.filter((type) => !['function', 'remote'].includes(type))
|
|
69
|
-
.map((type) => ({ type, items: allModules[type] })) || [],
|
|
70
|
-
remotes: remoteModules?.map((entry) => ({
|
|
71
|
-
key: entry?.key || 'N/A',
|
|
72
|
-
baseUrl: entry?.extensionData.baseUrl,
|
|
73
|
-
operations: entry?.extensionData.operations || []
|
|
74
|
-
})) || []
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
getTypeFromPermissionType(permissionType) {
|
|
78
|
-
switch (permissionType) {
|
|
79
|
-
case cli_shared_1.AppNetworkPermissionType.FetchBackendSide:
|
|
80
|
-
return 'fetch.backend';
|
|
81
|
-
case cli_shared_1.AppNetworkPermissionType.FetchClientSide:
|
|
82
|
-
return 'fetch.client';
|
|
83
|
-
default:
|
|
84
|
-
return permissionType?.toLowerCase().replaceAll('_', '.');
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
getModulesGroupedByTypes(modules) {
|
|
88
|
-
const rawModules = modules
|
|
89
|
-
?.filter((mod) => manifest_1.SUPPORTED_MODULES.includes(mod?.extensionData.type))
|
|
90
|
-
?.filter((mod) => ![manifest_1.AllModuleTypes.CoreFunction, manifest_1.AllModuleTypes.CoreRemote].includes(mod?.extensionData.type))
|
|
91
|
-
.map((entry) => ({
|
|
92
|
-
key: entry?.key || 'N/A',
|
|
93
|
-
type: entry?.extensionData.type,
|
|
94
|
-
properties: {
|
|
95
|
-
...this.removeInternalPropertiesFromObject(entry?.extensionData)
|
|
96
|
-
}
|
|
97
|
-
})) || [];
|
|
98
|
-
return rawModules.reduce((acc, entry) => {
|
|
99
|
-
const type = (0, manifest_1.cleanKey)(entry.type);
|
|
100
|
-
if (acc[type] === undefined) {
|
|
101
|
-
acc[type] = [];
|
|
102
|
-
}
|
|
103
|
-
acc[type].push(entry);
|
|
104
|
-
return acc;
|
|
105
|
-
}, {});
|
|
106
|
-
}
|
|
107
|
-
removeInternalPropertiesFromObject(obj) {
|
|
108
|
-
const { type, functions, outboundAuthContainerId, resourceUploadId, key, ...rest } = obj || {};
|
|
109
|
-
return rest;
|
|
110
|
-
}
|
|
111
|
-
async getAppVersions(environmentKey) {
|
|
112
|
-
const { id: appId } = await this.getAppConfig();
|
|
113
|
-
return await this.versionDetailsClient.getVersionList(appId, environmentKey);
|
|
114
|
-
}
|
|
115
|
-
async getAppVersionOverviewList(environmentKey) {
|
|
116
|
-
const versions = await this.getAppVersions(environmentKey);
|
|
117
|
-
const majorVersions = versions.map((version) => this.getMajorVersion(version));
|
|
118
|
-
const versionDetails = await Promise.all(majorVersions.map(async (version) => await this.getAppVersionDetails(environmentKey, version)));
|
|
119
|
-
return versionDetails.map((entry) => ({
|
|
120
|
-
version: entry.appVersion,
|
|
121
|
-
deploymentDateTime: entry.deploymentDateTime,
|
|
122
|
-
environmentType: entry.environmentType,
|
|
123
|
-
egresses: entry.egresses.map((egress) => ({ type: egress.type, count: egress.addresses.length })),
|
|
124
|
-
policies: entry.policies.map((policy) => ({ type: policy.type, count: policy.policies.length })),
|
|
125
|
-
scopes: (entry.scopes.length || 0).toString(),
|
|
126
|
-
connectKeys: (entry.connectKeys?.length || 0).toString(),
|
|
127
|
-
functions: (entry.functions?.length || 0).toString(),
|
|
128
|
-
remotes: (entry.remotes?.length || 0).toString(),
|
|
129
|
-
modules: entry.modules.map((module) => ({ type: module.type, count: module.items.length })),
|
|
130
|
-
requiresLicense: entry.requiresLicense
|
|
131
|
-
}));
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
exports.VersionService = VersionService;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { AppEnvironmentType, AppPermission, AppVersionExtension, GraphQLClient, Maybe, MigrationKeys, Storage, UserError } from '@forge/cli-shared';
|
|
2
|
-
export interface AppVersionDetailsData {
|
|
3
|
-
migrationKeys?: Maybe<MigrationKeys> | null;
|
|
4
|
-
permissions?: Array<AppPermission> | null;
|
|
5
|
-
modules: Array<AppVersionExtension | null> | null | undefined;
|
|
6
|
-
environmentType: AppEnvironmentType;
|
|
7
|
-
appVersion: string;
|
|
8
|
-
deploymentDateTime: Date;
|
|
9
|
-
requiresLicense: boolean;
|
|
10
|
-
storage: Storage;
|
|
11
|
-
}
|
|
12
|
-
export declare class MissingAppError extends UserError {
|
|
13
|
-
}
|
|
14
|
-
export declare class EnvironmentNotFoundError extends UserError {
|
|
15
|
-
constructor(environmentKey: string);
|
|
16
|
-
}
|
|
17
|
-
export declare class MissingAppVersionError extends Error {
|
|
18
|
-
}
|
|
19
|
-
export declare class MissingAppEnvironmentError extends Error {
|
|
20
|
-
}
|
|
21
|
-
export declare class AppVersionDetailsClient {
|
|
22
|
-
private readonly graphqlClient;
|
|
23
|
-
constructor(graphqlClient: GraphQLClient);
|
|
24
|
-
getVersionDetails(appId: string, environmentKey: string, majorVersion?: number): Promise<AppVersionDetailsData>;
|
|
25
|
-
getVersionList(appId: string, environmentKey: string): Promise<string[]>;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=graphql-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/version/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,aAAa,EAEb,OAAO,EAEP,SAAS,EACV,MAAM,mBAAmB,CAAC;AAS3B,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,kBAAkB,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AAEjD,qBAAa,wBAAyB,SAAQ,SAAS;gBACzC,cAAc,EAAE,MAAM;CAGnC;AAED,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AAEpD,qBAAa,0BAA2B,SAAQ,KAAK;CAAG;AAExD,qBAAa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,iBAAiB,CAC5B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC;IAyFpB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAuDtF"}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AppVersionDetailsClient = exports.MissingAppEnvironmentError = exports.MissingAppVersionError = exports.EnvironmentNotFoundError = exports.MissingAppError = void 0;
|
|
4
|
-
const cli_shared_1 = require("@forge/cli-shared");
|
|
5
|
-
class MissingAppError extends cli_shared_1.UserError {
|
|
6
|
-
}
|
|
7
|
-
exports.MissingAppError = MissingAppError;
|
|
8
|
-
class EnvironmentNotFoundError extends cli_shared_1.UserError {
|
|
9
|
-
constructor(environmentKey) {
|
|
10
|
-
super(cli_shared_1.Text.env.error.envNotExist(environmentKey));
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.EnvironmentNotFoundError = EnvironmentNotFoundError;
|
|
14
|
-
class MissingAppVersionError extends Error {
|
|
15
|
-
}
|
|
16
|
-
exports.MissingAppVersionError = MissingAppVersionError;
|
|
17
|
-
class MissingAppEnvironmentError extends Error {
|
|
18
|
-
}
|
|
19
|
-
exports.MissingAppEnvironmentError = MissingAppEnvironmentError;
|
|
20
|
-
class AppVersionDetailsClient {
|
|
21
|
-
graphqlClient;
|
|
22
|
-
constructor(graphqlClient) {
|
|
23
|
-
this.graphqlClient = graphqlClient;
|
|
24
|
-
}
|
|
25
|
-
async getVersionDetails(appId, environmentKey, majorVersion) {
|
|
26
|
-
const query = `
|
|
27
|
-
query forge_cli_getApplicationVersionDetails($appId: ID!, $environmentKey: String!, $firstN: Int!, $majorVersion: Int) {
|
|
28
|
-
app(id: $appId) {
|
|
29
|
-
environmentByKey(key: $environmentKey) {
|
|
30
|
-
type
|
|
31
|
-
versions(first: $firstN, majorVersion: $majorVersion) {
|
|
32
|
-
nodes {
|
|
33
|
-
version
|
|
34
|
-
createdAt
|
|
35
|
-
isLatest
|
|
36
|
-
requiresLicense
|
|
37
|
-
permissions {
|
|
38
|
-
scopes {
|
|
39
|
-
key
|
|
40
|
-
}
|
|
41
|
-
egress {
|
|
42
|
-
type
|
|
43
|
-
addresses
|
|
44
|
-
}
|
|
45
|
-
securityPolicies {
|
|
46
|
-
type
|
|
47
|
-
policies
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
extensions {
|
|
51
|
-
nodes {
|
|
52
|
-
id
|
|
53
|
-
key
|
|
54
|
-
extensionData
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
storage {
|
|
58
|
-
hosted {
|
|
59
|
-
classifications
|
|
60
|
-
locations
|
|
61
|
-
}
|
|
62
|
-
remotes {
|
|
63
|
-
key
|
|
64
|
-
baseUrl
|
|
65
|
-
classifications
|
|
66
|
-
locations
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
migrationKeys {
|
|
70
|
-
jira
|
|
71
|
-
confluence
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
`;
|
|
79
|
-
const result = await this.graphqlClient.query(query, {
|
|
80
|
-
appId,
|
|
81
|
-
environmentKey,
|
|
82
|
-
firstN: 1,
|
|
83
|
-
majorVersion
|
|
84
|
-
});
|
|
85
|
-
if (!result.app) {
|
|
86
|
-
throw new MissingAppError();
|
|
87
|
-
}
|
|
88
|
-
if (!result.app.environmentByKey) {
|
|
89
|
-
throw new EnvironmentNotFoundError(environmentKey);
|
|
90
|
-
}
|
|
91
|
-
if (!result.app.environmentByKey.versions?.nodes?.length) {
|
|
92
|
-
throw new MissingAppEnvironmentError();
|
|
93
|
-
}
|
|
94
|
-
if (!result.app.environmentByKey.versions?.nodes?.[0]?.version) {
|
|
95
|
-
throw new MissingAppVersionError();
|
|
96
|
-
}
|
|
97
|
-
return {
|
|
98
|
-
migrationKeys: result.app.environmentByKey.versions?.nodes?.[0]?.migrationKeys,
|
|
99
|
-
environmentType: result.app.environmentByKey.type,
|
|
100
|
-
appVersion: result.app.environmentByKey.versions?.nodes?.[0]?.version,
|
|
101
|
-
deploymentDateTime: new Date(Number.parseInt(result.app.environmentByKey.versions?.nodes?.[0]?.createdAt)),
|
|
102
|
-
storage: result.app.environmentByKey.versions?.nodes?.[0]?.storage,
|
|
103
|
-
requiresLicense: result.app.environmentByKey.versions?.nodes?.[0]?.requiresLicense,
|
|
104
|
-
permissions: result.app.environmentByKey.versions?.nodes?.[0]?.permissions,
|
|
105
|
-
modules: result.app.environmentByKey.versions?.nodes?.[0]?.extensions?.nodes
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
async getVersionList(appId, environmentKey) {
|
|
109
|
-
const query = `
|
|
110
|
-
query forge_cli_getApplicationVersionList($appId: ID!, $first: Int, $after: String) {
|
|
111
|
-
app(id: $appId) {
|
|
112
|
-
environments {
|
|
113
|
-
key
|
|
114
|
-
versions(first: $first, after: $after) {
|
|
115
|
-
nodes {
|
|
116
|
-
version
|
|
117
|
-
}
|
|
118
|
-
pageInfo {
|
|
119
|
-
hasNextPage
|
|
120
|
-
endCursor
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
`;
|
|
127
|
-
const output = [];
|
|
128
|
-
let cursor = undefined;
|
|
129
|
-
let hasNext = undefined;
|
|
130
|
-
do {
|
|
131
|
-
const result = await this.graphqlClient.query(query, {
|
|
132
|
-
appId,
|
|
133
|
-
first: 20,
|
|
134
|
-
after: cursor
|
|
135
|
-
});
|
|
136
|
-
if (!result.app) {
|
|
137
|
-
throw new MissingAppError();
|
|
138
|
-
}
|
|
139
|
-
if (!result.app.environments) {
|
|
140
|
-
throw new MissingAppVersionError();
|
|
141
|
-
}
|
|
142
|
-
const environment = result.app.environments.filter((env) => env.key === environmentKey)[0];
|
|
143
|
-
cursor = environment?.versions?.pageInfo.endCursor;
|
|
144
|
-
hasNext = environment?.versions?.pageInfo.hasNextPage;
|
|
145
|
-
output.push(...(environment?.versions?.nodes?.map((node) => node?.version) || []).filter((item) => Boolean(item)));
|
|
146
|
-
} while (hasNext && cursor);
|
|
147
|
-
return output;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
exports.AppVersionDetailsClient = AppVersionDetailsClient;
|