@forge/cli 6.5.0-next.6-experimental-58938ba → 6.5.0

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,25 +1,69 @@
1
1
  # @forge/cli
2
2
 
3
- ## 6.5.0-next.6-experimental-58938ba
3
+ ## 6.5.0
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - e0dffffc: Update default platform used by Docker when tunneling
7
+ - e0dffff: Update default platform used by Docker when tunneling
8
+ - 1911d76: Added "forge environment create" command
8
9
 
9
10
  ### Patch Changes
10
11
 
11
- - bac6b740: Updated DSN sentry format
12
+ - 589467c: Bumping dependencies via Renovate:
13
+
14
+ - cross-spawn
15
+
16
+ - bac6b74: Updated DSN sentry format
12
17
  - 1eca527f: Type-safe argument and option handling
13
- - Updated dependencies [82ea466c]
14
- - Updated dependencies [c98de79a]
18
+ - Updated dependencies [82ea466]
19
+ - Updated dependencies [589467c]
20
+ - Updated dependencies [1911d76]
21
+ - Updated dependencies [c98de79]
15
22
  - Updated dependencies [1eca527f]
16
- - Updated dependencies [23a89df6]
17
- - @forge/bundler@4.6.0-next.4-experimental-58938ba
18
- - @forge/runtime@4.3.0-next.0-experimental-58938ba
19
- - @forge/cli-shared@3.6.2-next.1-experimental-58938ba
20
- - @forge/manifest@4.7.1-next.0-experimental-58938ba
21
- - @forge/tunnel@3.1.2-next.4-experimental-58938ba
22
- - @forge/lint@3.2.16-next.1-experimental-58938ba
23
+ - Updated dependencies [659107b]
24
+ - Updated dependencies [23a89df]
25
+ - @forge/bundler@4.6.0
26
+ - @forge/cli-shared@3.7.0
27
+ - @forge/lint@3.2.16
28
+ - @forge/tunnel@3.2.0
29
+ - @forge/runtime@4.3.0
30
+ - @forge/manifest@4.7.1
31
+
32
+ ## 6.5.0-next.9
33
+
34
+ ### Minor Changes
35
+
36
+ - 1911d76: Added "forge environment create" command
37
+
38
+ ### Patch Changes
39
+
40
+ - Updated dependencies [1911d76]
41
+ - @forge/cli-shared@3.7.0-next.3
42
+ - @forge/tunnel@3.2.0-next.7
43
+ - @forge/bundler@4.6.0-next.7
44
+ - @forge/lint@3.2.16-next.3
45
+
46
+ ## 6.5.0-next.8
47
+
48
+ ### Patch Changes
49
+
50
+ - Updated dependencies [659107b]
51
+ - @forge/bundler@4.6.0-next.6
52
+ - @forge/tunnel@3.1.2-next.6
53
+
54
+ ## 6.5.0-next.7
55
+
56
+ ### Patch Changes
57
+
58
+ - 589467c: Bumping dependencies via Renovate:
59
+
60
+ - cross-spawn
61
+
62
+ - Updated dependencies [589467c]
63
+ - @forge/cli-shared@3.6.2-next.2
64
+ - @forge/lint@3.2.16-next.2
65
+ - @forge/bundler@4.6.0-next.5
66
+ - @forge/tunnel@3.1.2-next.5
23
67
 
24
68
  ## 6.5.0-next.6
25
69
 
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "6.5.0-next.6-experimental-58938ba",
3
+ "version": "6.5.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@forge/cli",
9
- "version": "6.5.0-next.6-experimental-58938ba",
9
+ "version": "6.5.0",
10
10
  "hasInstallScript": true,
11
11
  "license": "UNLICENSED",
12
12
  "dependencies": {
13
- "@forge/bundler": "4.6.0-next.4-experimental-58938ba",
14
- "@forge/cli-shared": "3.6.2-next.1-experimental-58938ba",
13
+ "@forge/bundler": "4.6.0",
14
+ "@forge/cli-shared": "3.7.0",
15
15
  "@forge/egress": "1.1.2",
16
- "@forge/lint": "3.2.16-next.1-experimental-58938ba",
17
- "@forge/manifest": "4.7.1-next.0-experimental-58938ba",
18
- "@forge/runtime": "4.3.0-next.0-experimental-58938ba",
19
- "@forge/tunnel": "3.1.2-next.4-experimental-58938ba",
16
+ "@forge/lint": "3.2.16",
17
+ "@forge/manifest": "4.7.1",
18
+ "@forge/runtime": "4.3.0",
19
+ "@forge/tunnel": "3.2.0",
20
20
  "@forge/util": "1.2.1",
21
21
  "@sentry/node": "^7.29.0",
22
22
  "ajv": "^6.12.6",
@@ -27,7 +27,7 @@
27
27
  "cli-table3": "^0.6.1",
28
28
  "command-exists": "^1.2.9",
29
29
  "commander": "^7.0.0",
30
- "cross-spawn": "^7.0.1",
30
+ "cross-spawn": "^7.0.3",
31
31
  "dayjs": "^1.9.7",
32
32
  "didyoumean": "^1.2.1",
33
33
  "env-paths": "^2.2.0",
@@ -647,6 +647,18 @@
647
647
  "node": ">=10.0.0"
648
648
  }
649
649
  },
650
+ "node_modules/@forge/api": {
651
+ "version": "2.12.0",
652
+ "resolved": "https://registry.npmjs.org/@forge/api/-/api-2.12.0.tgz",
653
+ "integrity": "sha512-xxZyq6HYet6D5JAg3z5qpBCVYe76RJ6IGg70y199yC2WM3mzz1dGl4se44scfdzy2uZSc5IMjb3b/J48xnJ5IA==",
654
+ "dependencies": {
655
+ "@forge/auth": "0.0.1",
656
+ "@forge/egress": "1.1.2",
657
+ "@forge/storage": "1.3.2",
658
+ "@types/node-fetch": "^2.5.7",
659
+ "node-fetch": "2.6.7"
660
+ }
661
+ },
650
662
  "node_modules/@forge/auth": {
651
663
  "version": "0.0.1",
652
664
  "resolved": "https://registry.npmjs.org/@forge/auth/-/auth-0.0.1.tgz",
@@ -661,14 +673,14 @@
661
673
  "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA= sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
662
674
  },
663
675
  "node_modules/@forge/babel-plugin-transform-ui": {
664
- "version": "1.1.1-experimental-58938ba",
665
- "resolved": "https://registry.npmjs.org/@forge/babel-plugin-transform-ui/-/babel-plugin-transform-ui-1.1.1-experimental-58938ba.tgz",
666
- "integrity": "sha512-XXdq74DhFtiZEiNP/l0uji31ijDK089ZqO+5OC0WbSE33VbcNsmg2hnZfuxTo+o/a80Qf+hQUYRU26UVpV7h7w=="
676
+ "version": "1.1.1",
677
+ "resolved": "https://registry.npmjs.org/@forge/babel-plugin-transform-ui/-/babel-plugin-transform-ui-1.1.1.tgz",
678
+ "integrity": "sha512-kBvxvnVcFHq0Tz8NV5LhAeO0Gt0fg6Vt2AxE803ro9MHJ6S/ca7BqRDPnKnROoKZ0gAV2ymr27XvBMEq55wv6g=="
667
679
  },
668
680
  "node_modules/@forge/bundler": {
669
- "version": "4.6.0-next.4-experimental-58938ba",
670
- "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.6.0-next.4-experimental-58938ba.tgz",
671
- "integrity": "sha512-5pz90DgO22NsLkltGBeuc1l5lEHMAm+SvyVTxwOCqaKvXd8/95nATIAGKRgVfASMl7bMW7coD6Oeh77vaFBAnQ==",
681
+ "version": "4.6.0",
682
+ "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.6.0.tgz",
683
+ "integrity": "sha512-psZdrR89dwlWiqyaNfeK8HxFB6RUN6KZ+g/scQ/ckLT6sx+4b0KM+1/doGWlWS9X1bUGVLyPuxYOKU3gAkPnBQ==",
672
684
  "dependencies": {
673
685
  "@babel/core": "^7.16.7",
674
686
  "@babel/plugin-proposal-class-properties": "^7.16.7",
@@ -676,11 +688,11 @@
676
688
  "@babel/plugin-proposal-optional-chaining": "^7.16.7",
677
689
  "@babel/plugin-transform-react-jsx": "^7.16.7",
678
690
  "@babel/preset-typescript": "^7.16.7",
679
- "@forge/api": "2.12.0-next.1-experimental-58938ba",
680
- "@forge/babel-plugin-transform-ui": "1.1.1-experimental-58938ba",
681
- "@forge/cli-shared": "3.6.2-next.1-experimental-58938ba",
682
- "@forge/lint": "3.2.16-next.1-experimental-58938ba",
683
- "@forge/runtime": "4.3.0-next.0-experimental-58938ba",
691
+ "@forge/api": "2.12.0",
692
+ "@forge/babel-plugin-transform-ui": "1.1.1",
693
+ "@forge/cli-shared": "3.7.0",
694
+ "@forge/lint": "3.2.16",
695
+ "@forge/runtime": "4.3.0",
684
696
  "@forge/util": "1.2.1",
685
697
  "assert": "^1.1.1",
686
698
  "babel-loader": "^8.2.3",
@@ -715,29 +727,12 @@
715
727
  "node": ">=12.13.1"
716
728
  }
717
729
  },
718
- "node_modules/@forge/bundler/node_modules/@forge/api": {
719
- "version": "2.12.0-next.1-experimental-58938ba",
720
- "resolved": "https://registry.npmjs.org/@forge/api/-/api-2.12.0-next.1-experimental-58938ba.tgz",
721
- "integrity": "sha512-K4I4BncJRit5x0M96IYTq/N4XV4+305XVHRG0/XwhYqP6Fxjnrr8WDO0R9qiZojYh8jDuoHmeODKW2xmpDU6yw==",
722
- "dependencies": {
723
- "@forge/auth": "0.0.1",
724
- "@forge/egress": "1.1.2",
725
- "@forge/storage": "1.3.2-experimental-58938ba",
726
- "@types/node-fetch": "^2.5.7",
727
- "node-fetch": "2.6.7"
728
- }
729
- },
730
- "node_modules/@forge/bundler/node_modules/@forge/storage": {
731
- "version": "1.3.2-experimental-58938ba",
732
- "resolved": "https://registry.npmjs.org/@forge/storage/-/storage-1.3.2-experimental-58938ba.tgz",
733
- "integrity": "sha512-tIKUxGd+dg5PbAMdAHYVNVyXdjDa3cFPZCHsGHLOgOBT/92FSdK2RB9yO5B7B+D2DEXeUh2SEKVprcsob77T2A=="
734
- },
735
730
  "node_modules/@forge/cli-shared": {
736
- "version": "3.6.2-next.1-experimental-58938ba",
737
- "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-3.6.2-next.1-experimental-58938ba.tgz",
738
- "integrity": "sha512-9szXDfZnWc1CqFOzGQSa2IQqobU9pQisiWQdMjzLcyMfdEdwwrbtqYYvUhWNlFHC0puHxpbi07bfZhG3Ju273Q==",
731
+ "version": "3.7.0",
732
+ "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-3.7.0.tgz",
733
+ "integrity": "sha512-Vj62kGYmPVY+xKlUNnzuSTlkdPb8jJPv5wlLzpg4x+xKDiLbyw2EUyZS3MoYxB9I9JblaBpVCCVmnYUHQl11Bw==",
739
734
  "dependencies": {
740
- "@forge/manifest": "4.7.1-next.0-experimental-58938ba",
735
+ "@forge/manifest": "4.7.1",
741
736
  "@forge/util": "1.2.1",
742
737
  "@sentry/node": "^7.29.0",
743
738
  "array.prototype.flatmap": "^1.2.3",
@@ -746,7 +741,7 @@
746
741
  "cheerio": "^0.22.0",
747
742
  "cli-table3": "^0.6.1",
748
743
  "conf": "^6.2.4",
749
- "cross-spawn": "^7.0.1",
744
+ "cross-spawn": "^7.0.3",
750
745
  "env-paths": "^2.2.0",
751
746
  "figures": "^3.2.0",
752
747
  "fp-ts": "^2.0.1",
@@ -771,9 +766,9 @@
771
766
  }
772
767
  },
773
768
  "node_modules/@forge/csp": {
774
- "version": "2.1.1-experimental-58938ba",
775
- "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-2.1.1-experimental-58938ba.tgz",
776
- "integrity": "sha512-upflViuQPNCAKdyCxb46PKIUNSYs9xrVrDw2lh0xbKd7gRhKcqmEek+XifW1nKGYtfwM3UGDnWF6w970sSPVJg==",
769
+ "version": "2.1.1",
770
+ "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-2.1.1.tgz",
771
+ "integrity": "sha512-Af69CNaZwVSGSlO0lm1Z737QFB9K5NOT6AQxfv4pTx+KeAIGTmP8AgYhKpgDx82IQb2EZeV0IJa9UbiXap8M3A==",
777
772
  "dependencies": {
778
773
  "cheerio": "^0.22.0",
779
774
  "content-security-policy-parser": "^0.3.0"
@@ -788,23 +783,23 @@
788
783
  }
789
784
  },
790
785
  "node_modules/@forge/lint": {
791
- "version": "3.2.16-next.1-experimental-58938ba",
792
- "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-3.2.16-next.1-experimental-58938ba.tgz",
793
- "integrity": "sha512-RRtmTIr0s5ZxMfMmxUfBowfWLHpKAhQJnsQlJwP9Ss+XBOEZ2iPNmGgOW3bKJa4vTQAS03FYAuVOxBGYgr1qvA==",
786
+ "version": "3.2.16",
787
+ "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-3.2.16.tgz",
788
+ "integrity": "sha512-DO5/G+UbbDH3Hkyq53R3ckJOfSC4KpWKjNKBziyuu0k5rHvA0vB/sHEz4B/zAV0Lgzp51gBXz3QqjlKVtyYQ/g==",
794
789
  "dependencies": {
795
- "@forge/cli-shared": "3.6.2-next.1-experimental-58938ba",
790
+ "@forge/cli-shared": "3.7.0",
796
791
  "@forge/egress": "1.1.2",
797
- "@forge/manifest": "4.7.1-next.0-experimental-58938ba",
792
+ "@forge/manifest": "4.7.1",
798
793
  "@typescript-eslint/typescript-estree": "^5.40.0",
799
794
  "atlassian-openapi": "^1.0.13",
800
- "cross-spawn": "^7.0.1",
795
+ "cross-spawn": "^7.0.3",
801
796
  "node-fetch": "2.6.7"
802
797
  }
803
798
  },
804
799
  "node_modules/@forge/manifest": {
805
- "version": "4.7.1-next.0-experimental-58938ba",
806
- "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-4.7.1-next.0-experimental-58938ba.tgz",
807
- "integrity": "sha512-vwItKAakeLhr8RpydTdNFma9e4ymwF9yFxauTeEehWAGz639u4Ije10JoDipptIKL9dE8NXhoGbp/l7nSSfWJQ==",
800
+ "version": "4.7.1",
801
+ "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-4.7.1.tgz",
802
+ "integrity": "sha512-xJXOXDTzVO/udrkm87Ojn4pSS+dF8LbpnQCqHFrKWskhwD6vzWY9PUKz3T5DJsrxnp5U+bDl4+g26WO6osts6g==",
808
803
  "dependencies": {
809
804
  "@forge/util": "1.2.1",
810
805
  "ajv": "^6.12.6",
@@ -817,9 +812,9 @@
817
812
  }
818
813
  },
819
814
  "node_modules/@forge/runtime": {
820
- "version": "4.3.0-next.0-experimental-58938ba",
821
- "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-4.3.0-next.0-experimental-58938ba.tgz",
822
- "integrity": "sha512-8kxvqbWgot6yzagNBROpmknhKYXTHkkzIYOPflO3QO53IRoIbWqhGu0TRbgBkOomaLqcedXtNx0CH/owMPTrVQ==",
815
+ "version": "4.3.0",
816
+ "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-4.3.0.tgz",
817
+ "integrity": "sha512-LizTBbZrUr00VTUmExgdD2XFy0MWEBJI8/71Aj0lKYE47aHeNBF1YC/VJs48f48AZlWxmRLL44VjwwSztvNT5A==",
823
818
  "dependencies": {
824
819
  "@forge/util": "1.2.1",
825
820
  "fp-ts": "^2.0.1",
@@ -835,15 +830,20 @@
835
830
  "node": "^14 || ^16 || ^18"
836
831
  }
837
832
  },
833
+ "node_modules/@forge/storage": {
834
+ "version": "1.3.2",
835
+ "resolved": "https://registry.npmjs.org/@forge/storage/-/storage-1.3.2.tgz",
836
+ "integrity": "sha512-+VgbIpeN+t+bfpIVUSuJoclkywmdh+pQsnKNjgS+hb/9IiKNSPhtgy1NIhB2rwARREXO7atqH5estbIhzd1lkA=="
837
+ },
838
838
  "node_modules/@forge/tunnel": {
839
- "version": "3.1.2-next.4-experimental-58938ba",
840
- "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-3.1.2-next.4-experimental-58938ba.tgz",
841
- "integrity": "sha512-P/dZEMl3f8ZXjuxDoAIMwayYGwF0MvIMZb+cuBjh5xhGq93M+RegLRhRUqEn2z13Fhmgmo503MnlQHutpAlIVA==",
842
- "dependencies": {
843
- "@forge/bundler": "4.6.0-next.4-experimental-58938ba",
844
- "@forge/cli-shared": "3.6.2-next.1-experimental-58938ba",
845
- "@forge/csp": "2.1.1-experimental-58938ba",
846
- "@forge/runtime": "4.3.0-next.0-experimental-58938ba",
839
+ "version": "3.2.0",
840
+ "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-3.2.0.tgz",
841
+ "integrity": "sha512-WpBh67BZ/ERHLKv/WMXtKixN8YzrEetlAtlzH4u7x7RxPRYLCsNTHclQJeL3qgY7cn+wUFsUq2VnS7+1cBVv7A==",
842
+ "dependencies": {
843
+ "@forge/bundler": "4.6.0",
844
+ "@forge/cli-shared": "3.7.0",
845
+ "@forge/csp": "2.1.1",
846
+ "@forge/runtime": "4.3.0",
847
847
  "express": "^4.17.1",
848
848
  "express-intercept": "^0.8.10",
849
849
  "http-proxy-middleware": "^1.0.6",
@@ -9923,6 +9923,18 @@
9923
9923
  "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
9924
9924
  "integrity": "sha1-HVcr+74Ut3BOC6Dzm3SBW4SHDXA= sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw=="
9925
9925
  },
9926
+ "@forge/api": {
9927
+ "version": "2.12.0",
9928
+ "resolved": "https://registry.npmjs.org/@forge/api/-/api-2.12.0.tgz",
9929
+ "integrity": "sha512-xxZyq6HYet6D5JAg3z5qpBCVYe76RJ6IGg70y199yC2WM3mzz1dGl4se44scfdzy2uZSc5IMjb3b/J48xnJ5IA==",
9930
+ "requires": {
9931
+ "@forge/auth": "0.0.1",
9932
+ "@forge/egress": "1.1.2",
9933
+ "@forge/storage": "1.3.2",
9934
+ "@types/node-fetch": "^2.5.7",
9935
+ "node-fetch": "2.6.7"
9936
+ }
9937
+ },
9926
9938
  "@forge/auth": {
9927
9939
  "version": "0.0.1",
9928
9940
  "resolved": "https://registry.npmjs.org/@forge/auth/-/auth-0.0.1.tgz",
@@ -9939,14 +9951,14 @@
9939
9951
  }
9940
9952
  },
9941
9953
  "@forge/babel-plugin-transform-ui": {
9942
- "version": "1.1.1-experimental-58938ba",
9943
- "resolved": "https://registry.npmjs.org/@forge/babel-plugin-transform-ui/-/babel-plugin-transform-ui-1.1.1-experimental-58938ba.tgz",
9944
- "integrity": "sha512-XXdq74DhFtiZEiNP/l0uji31ijDK089ZqO+5OC0WbSE33VbcNsmg2hnZfuxTo+o/a80Qf+hQUYRU26UVpV7h7w=="
9954
+ "version": "1.1.1",
9955
+ "resolved": "https://registry.npmjs.org/@forge/babel-plugin-transform-ui/-/babel-plugin-transform-ui-1.1.1.tgz",
9956
+ "integrity": "sha512-kBvxvnVcFHq0Tz8NV5LhAeO0Gt0fg6Vt2AxE803ro9MHJ6S/ca7BqRDPnKnROoKZ0gAV2ymr27XvBMEq55wv6g=="
9945
9957
  },
9946
9958
  "@forge/bundler": {
9947
- "version": "4.6.0-next.4-experimental-58938ba",
9948
- "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.6.0-next.4-experimental-58938ba.tgz",
9949
- "integrity": "sha512-5pz90DgO22NsLkltGBeuc1l5lEHMAm+SvyVTxwOCqaKvXd8/95nATIAGKRgVfASMl7bMW7coD6Oeh77vaFBAnQ==",
9959
+ "version": "4.6.0",
9960
+ "resolved": "https://registry.npmjs.org/@forge/bundler/-/bundler-4.6.0.tgz",
9961
+ "integrity": "sha512-psZdrR89dwlWiqyaNfeK8HxFB6RUN6KZ+g/scQ/ckLT6sx+4b0KM+1/doGWlWS9X1bUGVLyPuxYOKU3gAkPnBQ==",
9950
9962
  "requires": {
9951
9963
  "@babel/core": "^7.16.7",
9952
9964
  "@babel/plugin-proposal-class-properties": "^7.16.7",
@@ -9954,11 +9966,11 @@
9954
9966
  "@babel/plugin-proposal-optional-chaining": "^7.16.7",
9955
9967
  "@babel/plugin-transform-react-jsx": "^7.16.7",
9956
9968
  "@babel/preset-typescript": "^7.16.7",
9957
- "@forge/api": "2.12.0-next.1-experimental-58938ba",
9958
- "@forge/babel-plugin-transform-ui": "1.1.1-experimental-58938ba",
9959
- "@forge/cli-shared": "3.6.2-next.1-experimental-58938ba",
9960
- "@forge/lint": "3.2.16-next.1-experimental-58938ba",
9961
- "@forge/runtime": "4.3.0-next.0-experimental-58938ba",
9969
+ "@forge/api": "2.12.0",
9970
+ "@forge/babel-plugin-transform-ui": "1.1.1",
9971
+ "@forge/cli-shared": "3.7.0",
9972
+ "@forge/lint": "3.2.16",
9973
+ "@forge/runtime": "4.3.0",
9962
9974
  "@forge/util": "1.2.1",
9963
9975
  "assert": "^1.1.1",
9964
9976
  "babel-loader": "^8.2.3",
@@ -9988,33 +10000,14 @@
9988
10000
  "webpack": "5.75.0",
9989
10001
  "webpack-bundle-analyzer": "^4.8.0",
9990
10002
  "whatwg-url": "^7.0.0"
9991
- },
9992
- "dependencies": {
9993
- "@forge/api": {
9994
- "version": "2.12.0-next.1-experimental-58938ba",
9995
- "resolved": "https://registry.npmjs.org/@forge/api/-/api-2.12.0-next.1-experimental-58938ba.tgz",
9996
- "integrity": "sha512-K4I4BncJRit5x0M96IYTq/N4XV4+305XVHRG0/XwhYqP6Fxjnrr8WDO0R9qiZojYh8jDuoHmeODKW2xmpDU6yw==",
9997
- "requires": {
9998
- "@forge/auth": "0.0.1",
9999
- "@forge/egress": "1.1.2",
10000
- "@forge/storage": "1.3.2-experimental-58938ba",
10001
- "@types/node-fetch": "^2.5.7",
10002
- "node-fetch": "2.6.7"
10003
- }
10004
- },
10005
- "@forge/storage": {
10006
- "version": "1.3.2-experimental-58938ba",
10007
- "resolved": "https://registry.npmjs.org/@forge/storage/-/storage-1.3.2-experimental-58938ba.tgz",
10008
- "integrity": "sha512-tIKUxGd+dg5PbAMdAHYVNVyXdjDa3cFPZCHsGHLOgOBT/92FSdK2RB9yO5B7B+D2DEXeUh2SEKVprcsob77T2A=="
10009
- }
10010
10003
  }
10011
10004
  },
10012
10005
  "@forge/cli-shared": {
10013
- "version": "3.6.2-next.1-experimental-58938ba",
10014
- "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-3.6.2-next.1-experimental-58938ba.tgz",
10015
- "integrity": "sha512-9szXDfZnWc1CqFOzGQSa2IQqobU9pQisiWQdMjzLcyMfdEdwwrbtqYYvUhWNlFHC0puHxpbi07bfZhG3Ju273Q==",
10006
+ "version": "3.7.0",
10007
+ "resolved": "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-3.7.0.tgz",
10008
+ "integrity": "sha512-Vj62kGYmPVY+xKlUNnzuSTlkdPb8jJPv5wlLzpg4x+xKDiLbyw2EUyZS3MoYxB9I9JblaBpVCCVmnYUHQl11Bw==",
10016
10009
  "requires": {
10017
- "@forge/manifest": "4.7.1-next.0-experimental-58938ba",
10010
+ "@forge/manifest": "4.7.1",
10018
10011
  "@forge/util": "1.2.1",
10019
10012
  "@sentry/node": "^7.29.0",
10020
10013
  "array.prototype.flatmap": "^1.2.3",
@@ -10023,7 +10016,7 @@
10023
10016
  "cheerio": "^0.22.0",
10024
10017
  "cli-table3": "^0.6.1",
10025
10018
  "conf": "^6.2.4",
10026
- "cross-spawn": "^7.0.1",
10019
+ "cross-spawn": "^7.0.3",
10027
10020
  "env-paths": "^2.2.0",
10028
10021
  "figures": "^3.2.0",
10029
10022
  "fp-ts": "^2.0.1",
@@ -10048,9 +10041,9 @@
10048
10041
  }
10049
10042
  },
10050
10043
  "@forge/csp": {
10051
- "version": "2.1.1-experimental-58938ba",
10052
- "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-2.1.1-experimental-58938ba.tgz",
10053
- "integrity": "sha512-upflViuQPNCAKdyCxb46PKIUNSYs9xrVrDw2lh0xbKd7gRhKcqmEek+XifW1nKGYtfwM3UGDnWF6w970sSPVJg==",
10044
+ "version": "2.1.1",
10045
+ "resolved": "https://registry.npmjs.org/@forge/csp/-/csp-2.1.1.tgz",
10046
+ "integrity": "sha512-Af69CNaZwVSGSlO0lm1Z737QFB9K5NOT6AQxfv4pTx+KeAIGTmP8AgYhKpgDx82IQb2EZeV0IJa9UbiXap8M3A==",
10054
10047
  "requires": {
10055
10048
  "cheerio": "^0.22.0",
10056
10049
  "content-security-policy-parser": "^0.3.0"
@@ -10065,23 +10058,23 @@
10065
10058
  }
10066
10059
  },
10067
10060
  "@forge/lint": {
10068
- "version": "3.2.16-next.1-experimental-58938ba",
10069
- "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-3.2.16-next.1-experimental-58938ba.tgz",
10070
- "integrity": "sha512-RRtmTIr0s5ZxMfMmxUfBowfWLHpKAhQJnsQlJwP9Ss+XBOEZ2iPNmGgOW3bKJa4vTQAS03FYAuVOxBGYgr1qvA==",
10061
+ "version": "3.2.16",
10062
+ "resolved": "https://registry.npmjs.org/@forge/lint/-/lint-3.2.16.tgz",
10063
+ "integrity": "sha512-DO5/G+UbbDH3Hkyq53R3ckJOfSC4KpWKjNKBziyuu0k5rHvA0vB/sHEz4B/zAV0Lgzp51gBXz3QqjlKVtyYQ/g==",
10071
10064
  "requires": {
10072
- "@forge/cli-shared": "3.6.2-next.1-experimental-58938ba",
10065
+ "@forge/cli-shared": "3.7.0",
10073
10066
  "@forge/egress": "1.1.2",
10074
- "@forge/manifest": "4.7.1-next.0-experimental-58938ba",
10067
+ "@forge/manifest": "4.7.1",
10075
10068
  "@typescript-eslint/typescript-estree": "^5.40.0",
10076
10069
  "atlassian-openapi": "^1.0.13",
10077
- "cross-spawn": "^7.0.1",
10070
+ "cross-spawn": "^7.0.3",
10078
10071
  "node-fetch": "2.6.7"
10079
10072
  }
10080
10073
  },
10081
10074
  "@forge/manifest": {
10082
- "version": "4.7.1-next.0-experimental-58938ba",
10083
- "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-4.7.1-next.0-experimental-58938ba.tgz",
10084
- "integrity": "sha512-vwItKAakeLhr8RpydTdNFma9e4ymwF9yFxauTeEehWAGz639u4Ije10JoDipptIKL9dE8NXhoGbp/l7nSSfWJQ==",
10075
+ "version": "4.7.1",
10076
+ "resolved": "https://registry.npmjs.org/@forge/manifest/-/manifest-4.7.1.tgz",
10077
+ "integrity": "sha512-xJXOXDTzVO/udrkm87Ojn4pSS+dF8LbpnQCqHFrKWskhwD6vzWY9PUKz3T5DJsrxnp5U+bDl4+g26WO6osts6g==",
10085
10078
  "requires": {
10086
10079
  "@forge/util": "1.2.1",
10087
10080
  "ajv": "^6.12.6",
@@ -10094,9 +10087,9 @@
10094
10087
  }
10095
10088
  },
10096
10089
  "@forge/runtime": {
10097
- "version": "4.3.0-next.0-experimental-58938ba",
10098
- "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-4.3.0-next.0-experimental-58938ba.tgz",
10099
- "integrity": "sha512-8kxvqbWgot6yzagNBROpmknhKYXTHkkzIYOPflO3QO53IRoIbWqhGu0TRbgBkOomaLqcedXtNx0CH/owMPTrVQ==",
10090
+ "version": "4.3.0",
10091
+ "resolved": "https://registry.npmjs.org/@forge/runtime/-/runtime-4.3.0.tgz",
10092
+ "integrity": "sha512-LizTBbZrUr00VTUmExgdD2XFy0MWEBJI8/71Aj0lKYE47aHeNBF1YC/VJs48f48AZlWxmRLL44VjwwSztvNT5A==",
10100
10093
  "requires": {
10101
10094
  "@forge/util": "1.2.1",
10102
10095
  "fp-ts": "^2.0.1",
@@ -10109,15 +10102,20 @@
10109
10102
  "ws": "^7.1.0"
10110
10103
  }
10111
10104
  },
10105
+ "@forge/storage": {
10106
+ "version": "1.3.2",
10107
+ "resolved": "https://registry.npmjs.org/@forge/storage/-/storage-1.3.2.tgz",
10108
+ "integrity": "sha512-+VgbIpeN+t+bfpIVUSuJoclkywmdh+pQsnKNjgS+hb/9IiKNSPhtgy1NIhB2rwARREXO7atqH5estbIhzd1lkA=="
10109
+ },
10112
10110
  "@forge/tunnel": {
10113
- "version": "3.1.2-next.4-experimental-58938ba",
10114
- "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-3.1.2-next.4-experimental-58938ba.tgz",
10115
- "integrity": "sha512-P/dZEMl3f8ZXjuxDoAIMwayYGwF0MvIMZb+cuBjh5xhGq93M+RegLRhRUqEn2z13Fhmgmo503MnlQHutpAlIVA==",
10116
- "requires": {
10117
- "@forge/bundler": "4.6.0-next.4-experimental-58938ba",
10118
- "@forge/cli-shared": "3.6.2-next.1-experimental-58938ba",
10119
- "@forge/csp": "2.1.1-experimental-58938ba",
10120
- "@forge/runtime": "4.3.0-next.0-experimental-58938ba",
10111
+ "version": "3.2.0",
10112
+ "resolved": "https://registry.npmjs.org/@forge/tunnel/-/tunnel-3.2.0.tgz",
10113
+ "integrity": "sha512-WpBh67BZ/ERHLKv/WMXtKixN8YzrEetlAtlzH4u7x7RxPRYLCsNTHclQJeL3qgY7cn+wUFsUq2VnS7+1cBVv7A==",
10114
+ "requires": {
10115
+ "@forge/bundler": "4.6.0",
10116
+ "@forge/cli-shared": "3.7.0",
10117
+ "@forge/csp": "2.1.1",
10118
+ "@forge/runtime": "4.3.0",
10121
10119
  "express": "^4.17.1",
10122
10120
  "express-intercept": "^0.8.10",
10123
10121
  "http-proxy-middleware": "^1.0.6",
@@ -1,15 +1,20 @@
1
1
  import { CLIDetails, FeatureFlagReader, Logger } from '@forge/cli-shared';
2
- export interface PrerequisitesCheckResult {
2
+ interface FeatureFlagValues {
3
3
  muaoEnabled: boolean | null;
4
+ concurrentDevEnabled: boolean | null;
4
5
  }
6
+ export declare type PrerequisitesCheckResult = FeatureFlagValues;
5
7
  export declare class PrerequisitesController {
6
8
  private readonly logger;
7
9
  private readonly featureFlags;
8
10
  private readonly cliDetails;
9
11
  constructor(logger: Logger, featureFlags: FeatureFlagReader, cliDetails: CLIDetails | undefined);
10
12
  check(): Promise<PrerequisitesCheckResult>;
13
+ private evaluateFeatureFlags;
11
14
  private checkNodeVersion;
12
15
  private checkCustomWarning;
13
16
  private checkMUAOEnabled;
17
+ private checkConcurrentDevelopmentEnabled;
14
18
  }
19
+ export {};
15
20
  //# sourceMappingURL=prerequisites-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prerequisites-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/prerequisites-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAe,iBAAiB,EAAE,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAI7F,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B;AAED,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,iBAAiB,EAC/B,UAAU,EAAE,UAAU,GAAG,SAAS;IAG/C,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC;YAUlC,gBAAgB;YAgBhB,kBAAkB;YAOlB,gBAAgB;CAG/B"}
1
+ {"version":3,"file":"prerequisites-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/prerequisites-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAe,iBAAiB,EAAE,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAI7F,UAAU,iBAAiB;IACzB,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAC;CACtC;AAED,oBAAY,wBAAwB,GAAG,iBAAiB,CAAC;AACzD,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,iBAAiB,EAC/B,UAAU,EAAE,UAAU,GAAG,SAAS;IAG/C,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC;YAOlC,oBAAoB;YAWpB,gBAAgB;YAgBhB,kBAAkB;YAOlB,gBAAgB;YAIhB,iCAAiC;CAGhD"}
@@ -14,9 +14,14 @@ class PrerequisitesController {
14
14
  async check() {
15
15
  await this.checkNodeVersion();
16
16
  await this.checkCustomWarning();
17
+ return await this.evaluateFeatureFlags();
18
+ }
19
+ async evaluateFeatureFlags() {
17
20
  const muaoEnabled = (await this.checkMUAOEnabled()) || process.env.ENABLE_MUAO === 'true';
21
+ const concurrentDevEnabled = (await this.checkConcurrentDevelopmentEnabled()) || process.env.ENABLE_CONCURRENT_DEVELOPMENT === 'true';
18
22
  return {
19
- muaoEnabled
23
+ muaoEnabled,
24
+ concurrentDevEnabled
20
25
  };
21
26
  }
22
27
  async checkNodeVersion() {
@@ -37,5 +42,8 @@ class PrerequisitesController {
37
42
  async checkMUAOEnabled() {
38
43
  return this.featureFlags.readFlag('forge-cli-enable-muao');
39
44
  }
45
+ async checkConcurrentDevelopmentEnabled() {
46
+ return this.featureFlags.readFlag('forge-cli-enable-concurrent-development');
47
+ }
40
48
  }
41
49
  exports.PrerequisitesController = PrerequisitesController;
@@ -8,6 +8,7 @@ import { ConfigureProviderCommand } from '../providers/configure-provider';
8
8
  import { AddContributorCommand } from '../contributors/add-contributor';
9
9
  import { ListContributorsCommand } from '../contributors/list-contributors';
10
10
  import { RemoveContributorsCommand } from '../contributors/remove-contributors';
11
+ import { CreateEnvironmentCommand } from '../environment/create-environment';
11
12
  import { InstallAppSiteCommand } from '../installations/install-app-site';
12
13
  import { UninstallAppCommand } from '../installations/uninstall-app';
13
14
  import { InstallationService } from '../service/installation-service';
@@ -48,6 +49,7 @@ export declare const getDependencies: (cliDetails: CLIDetails | undefined) => Pr
48
49
  addContributorCommand: AddContributorCommand;
49
50
  listContributorCommand: ListContributorsCommand;
50
51
  removeContributorsCommand: RemoveContributorsCommand;
52
+ createEnvironmentCommand: CreateEnvironmentCommand;
51
53
  viewAppLogsCommand: ViewAppLogsCommand;
52
54
  getWebTriggerURLCommand: GetWebTriggerURLCommand;
53
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAMA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAUlB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EACnB,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,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAMhF,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;AAIzE,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;AAWlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAKhF,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkSvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAMA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAUlB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EACnB,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,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF,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;AAIzE,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;AAWlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAKhF,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuSvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
@@ -21,7 +21,9 @@ const add_contributor_1 = require("../contributors/add-contributor");
21
21
  const list_contributors_1 = require("../contributors/list-contributors");
22
22
  const remove_contributors_1 = require("../contributors/remove-contributors");
23
23
  const graphql_client_4 = require("../contributors/graphql-client");
24
- const graphql_client_5 = require("../installations/graphql-client");
24
+ const create_environment_1 = require("../environment/create-environment");
25
+ const graphql_client_5 = require("../environment/graphql-client");
26
+ const graphql_client_6 = require("../installations/graphql-client");
25
27
  const site_translation_1 = require("../installations/site-translation");
26
28
  const install_app_site_1 = require("../installations/install-app-site");
27
29
  const uninstall_app_1 = require("../installations/uninstall-app");
@@ -57,7 +59,7 @@ const lint_view_1 = require("./view/lint-view");
57
59
  const lite_lint_view_1 = require("./view/lite-lint-view");
58
60
  const settings_view_1 = require("./view/settings-view");
59
61
  const tunnel_view_1 = require("./view/tunnel-view");
60
- const graphql_client_6 = require("../webtrigger/graphql-client");
62
+ const graphql_client_7 = require("../webtrigger/graphql-client");
61
63
  const stubController_1 = require("./controller/stubController");
62
64
  const prerequisites_controller_1 = require("./controller/prerequisites-controller");
63
65
  const runtime_bundler_1 = require("../deploy/packager/runtime-bundler");
@@ -118,6 +120,8 @@ const getDependencies = async (cliDetails) => {
118
120
  const addContributorCommand = new add_contributor_1.AddContributorCommand(contributorClient, assertiveAppConfigReader);
119
121
  const listContributorCommand = new list_contributors_1.ListContributorsCommand(contributorClient, assertiveAppConfigReader);
120
122
  const removeContributorsCommand = new remove_contributors_1.RemoveContributorsCommand(contributorClient, assertiveAppConfigReader);
123
+ const environmentClient = new graphql_client_5.GraphqlClient(graphQLClient);
124
+ const createEnvironmentCommand = new create_environment_1.CreateEnvironmentCommand(environmentClient, assertiveAppConfigReader);
121
125
  const migrationKeysClient = new graphql_client_2.GraphqlClient(graphQLClient);
122
126
  const migrationKeysService = new migration_keys_service_1.MigrationKeysService(migrationKeysClient, assertiveAppConfigReader);
123
127
  const appEnvironmentClient = new cli_shared_1.AppEnvironmentsGraphqlClient(graphQLClient);
@@ -127,11 +131,11 @@ const getDependencies = async (cliDetails) => {
127
131
  const viewAppLogsCommand = new cli_shared_1.ViewAppLogsCommand(assertiveAppConfigReader, appEnvironmentClient, globalEdgeClient, logsClient);
128
132
  const bitbucketTranslation = new site_translation_1.BitbucketTranslator();
129
133
  const cloudProductTranslation = new site_translation_1.CloudIdTranslator(graphQLClient);
130
- const installationsClient = new graphql_client_5.InstallationsGraphqlClient(graphQLClient, cloudProductTranslation, bitbucketTranslation, cli_shared_1.pause);
134
+ const installationsClient = new graphql_client_6.InstallationsGraphqlClient(graphQLClient, cloudProductTranslation, bitbucketTranslation, cli_shared_1.pause);
131
135
  const installAppSiteCommand = new install_app_site_1.InstallAppSiteCommand(assertiveAppConfigReader, installationsClient);
132
136
  const uninstallAppCommand = new uninstall_app_1.UninstallAppCommand(assertiveAppConfigReader, installationsClient);
133
137
  const deployMonitorClient = new deploy_1.DeployMonitorGraphqlClient(graphQLClient);
134
- const webTriggerGraphqlClient = new graphql_client_6.WebTriggerGraphQLClient(graphQLClient);
138
+ const webTriggerGraphqlClient = new graphql_client_7.WebTriggerGraphQLClient(graphQLClient);
135
139
  const archiverFactory = () => new deploy_1.ZipArchiver(ui);
136
140
  const uploaderArtifactClient = new deploy_1.ArtifactGraphQLClient(graphQLClient);
137
141
  const triggerDeployClient = new deploy_1.TriggerDeployGraphQLClient(graphQLClient);
@@ -194,6 +198,7 @@ const getDependencies = async (cliDetails) => {
194
198
  addContributorCommand,
195
199
  listContributorCommand,
196
200
  removeContributorsCommand,
201
+ createEnvironmentCommand,
197
202
  viewAppLogsCommand,
198
203
  getWebTriggerURLCommand
199
204
  },
@@ -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;AAkBvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAclD;AAQD,eAAO,MAAM,IAAI,QAAa,QAAQ,IAAI,CAczC,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;AAmBvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,QAclD;AAQD,eAAO,MAAM,IAAI,QAAa,QAAQ,IAAI,CAiBzC,CAAC"}
@@ -18,6 +18,7 @@ const register_feedback_commands_1 = require("./register-feedback-commands");
18
18
  const register_settings_commands_1 = require("./register-settings-commands");
19
19
  const register_providers_commands_1 = require("./register-providers-commands");
20
20
  const register_contributors_commands_1 = require("./register-contributors-commands");
21
+ const register_environment_commands_1 = require("./register-environment-commands");
21
22
  function registerCommands(deps) {
22
23
  (0, register_autocomplete_commands_1.registerCommands)(deps);
23
24
  (0, register_authentication_command_1.registerCommands)(deps);
@@ -44,10 +45,13 @@ const main = async () => {
44
45
  const deps = await (0, dependency_injection_1.getDependencies)(cliDetails);
45
46
  registerCommands(deps);
46
47
  registerEvents(deps);
47
- const checkResult = await deps.controllers.prerequisitesController.check();
48
- if (checkResult.muaoEnabled) {
48
+ const { muaoEnabled, concurrentDevEnabled } = await deps.controllers.prerequisitesController.check();
49
+ if (muaoEnabled) {
49
50
  (0, register_contributors_commands_1.registerCommands)(deps);
50
51
  }
52
+ if (concurrentDevEnabled) {
53
+ (0, register_environment_commands_1.registerCommands)(deps);
54
+ }
51
55
  await deps.cmd.parse(process.argv);
52
56
  };
53
57
  exports.main = main;
@@ -0,0 +1,6 @@
1
+ import { CommandLineUI } from '@forge/cli-shared';
2
+ import { Dependencies } from './dependency-injection';
3
+ import { CreateEnvironmentCommand } from '../environment/create-environment';
4
+ export declare const createEnvironmentHandler: (ui: CommandLineUI, createEnvironmentCommand: CreateEnvironmentCommand, environmentKey?: string) => Promise<void>;
5
+ export declare const registerCommands: (deps: Dependencies) => void;
6
+ //# sourceMappingURL=register-environment-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-environment-commands.d.ts","sourceRoot":"","sources":["../../src/command-line/register-environment-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAQ,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAI7E,eAAO,MAAM,wBAAwB,OAC/B,aAAa,4BACS,wBAAwB,mBACjC,MAAM,kBAmBxB,CAAC;AAiBF,eAAO,MAAM,gBAAgB,SAAU,YAAY,KAAG,IAKrD,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCommands = exports.createEnvironmentHandler = void 0;
4
+ const cli_shared_1 = require("@forge/cli-shared");
5
+ const COMMAND_NAME = 'environment';
6
+ const createEnvironmentHandler = async (ui, createEnvironmentCommand, environmentKey) => {
7
+ ui.info(cli_shared_1.Text.createEnvironment.overview);
8
+ ui.emptyLine();
9
+ if (!environmentKey) {
10
+ environmentKey = await ui.promptForText(cli_shared_1.Text.createEnvironment.promptEnvironmentKey);
11
+ ui.emptyLine();
12
+ }
13
+ const args = { environmentKey };
14
+ await ui.displayProgress(() => createEnvironmentCommand.execute(args), cli_shared_1.Text.createEnvironment.cmd.start, cli_shared_1.Text.createEnvironment.cmd.success(environmentKey));
15
+ ui.emptyLine();
16
+ ui.info(cli_shared_1.Text.createEnvironment.successMessage);
17
+ };
18
+ exports.createEnvironmentHandler = createEnvironmentHandler;
19
+ const registerCreateEnvironmentCommand = (parent, { ui, commands: { createEnvironmentCommand } }) => {
20
+ parent
21
+ .command('create')
22
+ .requireAppId()
23
+ .description(cli_shared_1.Text.createEnvironment.cmd.desc)
24
+ .option('-e, --environment [environment]', cli_shared_1.Text.createEnvironment.optionEnvironmentKey)
25
+ .nonInteractiveOption('--environment')
26
+ .action(async ({ environment }) => {
27
+ await (0, exports.createEnvironmentHandler)(ui, createEnvironmentCommand, environment);
28
+ });
29
+ };
30
+ const registerCommands = (deps) => {
31
+ const { cmd } = deps;
32
+ const environment = cmd.command(COMMAND_NAME).description(cli_shared_1.Text.environment.desc);
33
+ registerCreateEnvironmentCommand(environment, deps);
34
+ };
35
+ exports.registerCommands = registerCommands;
@@ -0,0 +1,17 @@
1
+ import { AppConfigProvider } from '@forge/cli-shared';
2
+ export interface EnvironmentDetails {
3
+ environmentKey: string;
4
+ }
5
+ export interface AppEnvironmentDetails extends EnvironmentDetails {
6
+ appId: string;
7
+ }
8
+ export interface CreateEnvironmentClient {
9
+ createEnvironment(details: AppEnvironmentDetails): Promise<void>;
10
+ }
11
+ export declare class CreateEnvironmentCommand {
12
+ private readonly client;
13
+ private readonly getAppConfig;
14
+ constructor(client: CreateEnvironmentClient, getAppConfig: AppConfigProvider);
15
+ execute(details: EnvironmentDetails): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=create-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-environment.d.ts","sourceRoot":"","sources":["../../src/environment/create-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA2B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAA9D,MAAM,EAAE,uBAAuB,EAAmB,YAAY,EAAE,iBAAiB;IAEjG,OAAO,CAAC,OAAO,EAAE,kBAAkB;CAOjD"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateEnvironmentCommand = void 0;
4
+ class CreateEnvironmentCommand {
5
+ constructor(client, getAppConfig) {
6
+ this.client = client;
7
+ this.getAppConfig = getAppConfig;
8
+ }
9
+ async execute(details) {
10
+ const { id: appId } = await this.getAppConfig();
11
+ await this.client.createEnvironment(Object.assign(Object.assign({}, details), { appId }));
12
+ }
13
+ }
14
+ exports.CreateEnvironmentCommand = CreateEnvironmentCommand;
@@ -0,0 +1,8 @@
1
+ import { GraphQLClient } from '@forge/cli-shared';
2
+ import { AppEnvironmentDetails, CreateEnvironmentClient } from './create-environment';
3
+ export declare class GraphqlClient implements CreateEnvironmentClient {
4
+ private readonly graphqlClient;
5
+ constructor(graphqlClient: GraphQLClient);
6
+ createEnvironment(details: AppEnvironmentDetails): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=graphql-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/environment/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,qBAAa,aAAc,YAAW,uBAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,iBAAiB,CAAC,OAAO,EAAE,qBAAqB;CA+C9D"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphqlClient = void 0;
4
+ const cli_shared_1 = require("@forge/cli-shared");
5
+ class GraphqlClient {
6
+ constructor(graphqlClient) {
7
+ this.graphqlClient = graphqlClient;
8
+ }
9
+ async createEnvironment(details) {
10
+ const mutation = `
11
+ mutation forge_cli_createEnvironment($input: CreateAppEnvironmentInput!) {
12
+ ecosystem {
13
+ createAppEnvironment(input: $input) {
14
+ success
15
+ errors {
16
+ message
17
+ extensions {
18
+ errorType
19
+ statusCode
20
+ }
21
+ }
22
+ }
23
+ }
24
+ }
25
+ `;
26
+ const { response: { ecosystem: { createAppEnvironment } }, requestId } = await this.graphqlClient.mutate(mutation, {
27
+ input: {
28
+ appAri: details.appId,
29
+ environmentKey: details.environmentKey,
30
+ environmentType: cli_shared_1.AppEnvironmentType.Development
31
+ }
32
+ });
33
+ if (!createAppEnvironment) {
34
+ throw new cli_shared_1.GraphQlMutationError(`Unable to get a response (requestId: ${requestId || 'unknown'})`, { requestId });
35
+ }
36
+ const { success, errors } = createAppEnvironment;
37
+ const error = (0, cli_shared_1.getError)(errors);
38
+ if (!success) {
39
+ throw new cli_shared_1.GraphQlMutationError(`${error.message} (requestId: ${requestId || 'unknown'})`, {
40
+ requestId,
41
+ code: error.code,
42
+ statusCode: error.statusCode
43
+ });
44
+ }
45
+ }
46
+ }
47
+ exports.GraphqlClient = GraphqlClient;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "6.5.0-next.6-experimental-58938ba",
3
+ "version": "6.5.0",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -18,13 +18,13 @@
18
18
  "postinstall": "node -e \"process.exitCode = fs.existsSync('./out/bin/postinstall.js')\" || node ./out/bin/postinstall.js"
19
19
  },
20
20
  "dependencies": {
21
- "@forge/bundler": "4.6.0-next.4-experimental-58938ba",
22
- "@forge/cli-shared": "3.6.2-next.1-experimental-58938ba",
21
+ "@forge/bundler": "4.6.0",
22
+ "@forge/cli-shared": "3.7.0",
23
23
  "@forge/egress": "1.1.2",
24
- "@forge/lint": "3.2.16-next.1-experimental-58938ba",
25
- "@forge/manifest": "4.7.1-next.0-experimental-58938ba",
26
- "@forge/runtime": "4.3.0-next.0-experimental-58938ba",
27
- "@forge/tunnel": "3.1.2-next.4-experimental-58938ba",
24
+ "@forge/lint": "3.2.16",
25
+ "@forge/manifest": "4.7.1",
26
+ "@forge/runtime": "4.3.0",
27
+ "@forge/tunnel": "3.2.0",
28
28
  "@forge/util": "1.2.1",
29
29
  "@sentry/node": "^7.29.0",
30
30
  "ajv": "^6.12.6",
@@ -35,7 +35,7 @@
35
35
  "cli-table3": "^0.6.1",
36
36
  "command-exists": "^1.2.9",
37
37
  "commander": "^7.0.0",
38
- "cross-spawn": "^7.0.1",
38
+ "cross-spawn": "^7.0.3",
39
39
  "dayjs": "^1.9.7",
40
40
  "didyoumean": "^1.2.1",
41
41
  "env-paths": "^2.2.0",