@forge/cli 10.13.3-next.10 → 10.13.4-next.1-experimental-19bd64d

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.
@@ -0,0 +1,150 @@
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "10.13.3-next.10",
3
+ "version": "10.13.4-next.1-experimental-19bd64d",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -18,16 +18,17 @@
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.4-next.8",
22
- "@forge/cli-shared": "6.5.1-next.5",
23
- "@forge/egress": "1.3.0-next.0",
24
- "@forge/lint": "5.6.4-next.7",
25
- "@forge/manifest": "8.4.0-next.3",
26
- "@forge/runtime": "5.10.4-next.0",
27
- "@forge/tunnel": "5.8.0-next.10",
28
- "@forge/util": "1.4.6-next.0",
21
+ "@forge/bundler": "4.20.5-next.1-experimental-19bd64d",
22
+ "@forge/cli-shared": "6.5.2-next.1-experimental-19bd64d",
23
+ "@forge/egress": "1.3.0",
24
+ "@forge/lint": "5.6.5-next.1-experimental-19bd64d",
25
+ "@forge/manifest": "8.4.1-next.1-experimental-19bd64d",
26
+ "@forge/runtime": "5.10.4",
27
+ "@forge/tunnel": "5.8.1-next.1-experimental-19bd64d",
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",
31
32
  "ajv": "^8.12.0",
32
33
  "archiver": "^6.0.2",
33
34
  "case": "^1.6.3",
@@ -39,6 +40,7 @@
39
40
  "cross-spawn": "^7.0.3",
40
41
  "dayjs": "^1.11.10",
41
42
  "didyoumean": "^1.2.2",
43
+ "diff": "^7.0.0",
42
44
  "env-paths": "^2.2.1",
43
45
  "exponential-backoff": "^3.1.1",
44
46
  "form-data": "^4.0.0",
@@ -63,6 +65,7 @@
63
65
  "@types/command-exists": "^1.2.3",
64
66
  "@types/cross-spawn": "^6.0.6",
65
67
  "@types/didyoumean": "^1.2.2",
68
+ "@types/diff": "^6.0.0",
66
69
  "@types/fs-extra": "^11.0.4",
67
70
  "@types/hidefile": "^3.0.3",
68
71
  "@types/inquirer": "^8.2.10",