@forge/cli 12.2.0-next.5-experimental-255e232 → 12.3.0-next.0-experimental-47556b0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +202 -9
  2. package/README.md +0 -8
  3. package/npm-shrinkwrap.json +54 -54
  4. package/out/command-line/controller/install-controller.d.ts +1 -1
  5. package/out/command-line/controller/install-controller.d.ts.map +1 -1
  6. package/out/command-line/controller/install-controller.js +6 -7
  7. package/out/command-line/controller/install-controller.js.map +1 -1
  8. package/out/command-line/dependency-injection.d.ts +6 -1
  9. package/out/command-line/dependency-injection.d.ts.map +1 -1
  10. package/out/command-line/dependency-injection.js +11 -1
  11. package/out/command-line/dependency-injection.js.map +1 -1
  12. package/out/command-line/index.d.ts.map +1 -1
  13. package/out/command-line/index.js +2 -0
  14. package/out/command-line/index.js.map +1 -1
  15. package/out/command-line/register-app-commands.d.ts +3 -2
  16. package/out/command-line/register-app-commands.d.ts.map +1 -1
  17. package/out/command-line/register-app-commands.js +42 -6
  18. package/out/command-line/register-app-commands.js.map +1 -1
  19. package/out/command-line/register-deployment-commands.d.ts +2 -1
  20. package/out/command-line/register-deployment-commands.d.ts.map +1 -1
  21. package/out/command-line/register-deployment-commands.js +38 -3
  22. package/out/command-line/register-deployment-commands.js.map +1 -1
  23. package/out/command-line/register-show-commands.d.ts +3 -0
  24. package/out/command-line/register-show-commands.d.ts.map +1 -0
  25. package/out/command-line/register-show-commands.js +141 -0
  26. package/out/command-line/register-show-commands.js.map +1 -0
  27. package/out/containers/container-command.d.ts +5 -1
  28. package/out/containers/container-command.d.ts.map +1 -1
  29. package/out/containers/container-command.js +45 -1
  30. package/out/containers/container-command.js.map +1 -1
  31. package/out/deployments/deployments-graphql-client.d.ts +9 -0
  32. package/out/deployments/deployments-graphql-client.d.ts.map +1 -0
  33. package/out/deployments/deployments-graphql-client.js +73 -0
  34. package/out/deployments/deployments-graphql-client.js.map +1 -0
  35. package/out/devspace/devspace-service.d.ts +16 -0
  36. package/out/devspace/devspace-service.d.ts.map +1 -0
  37. package/out/devspace/devspace-service.js +103 -0
  38. package/out/devspace/devspace-service.js.map +1 -0
  39. package/out/devspace/graphql-client.d.ts +39 -0
  40. package/out/devspace/graphql-client.d.ts.map +1 -0
  41. package/out/devspace/graphql-client.js +116 -0
  42. package/out/devspace/graphql-client.js.map +1 -0
  43. package/out/devspace/index.d.ts +3 -0
  44. package/out/devspace/index.d.ts.map +1 -0
  45. package/out/devspace/index.js +6 -0
  46. package/out/devspace/index.js.map +1 -0
  47. package/out/service/deployment-service.d.ts +37 -0
  48. package/out/service/deployment-service.d.ts.map +1 -0
  49. package/out/service/deployment-service.js +24 -0
  50. package/out/service/deployment-service.js.map +1 -0
  51. package/package.json +10 -10
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContainerCommand = exports.UnexpectedAppContainerRegistryLoginError = void 0;
3
+ exports.ContainerCommand = exports.UnexpectedAppContainerServicesError = exports.UnexpectedAppContainerRegistryLoginError = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
5
  class UnexpectedAppContainerRegistryLoginError extends Error {
6
6
  constructor() {
@@ -8,6 +8,12 @@ class UnexpectedAppContainerRegistryLoginError extends Error {
8
8
  }
9
9
  }
10
10
  exports.UnexpectedAppContainerRegistryLoginError = UnexpectedAppContainerRegistryLoginError;
11
+ class UnexpectedAppContainerServicesError extends Error {
12
+ constructor() {
13
+ super('Unable to retrieve app container services');
14
+ }
15
+ }
16
+ exports.UnexpectedAppContainerServicesError = UnexpectedAppContainerServicesError;
11
17
  class ContainerCommand {
12
18
  client;
13
19
  getAppConfig;
@@ -65,6 +71,44 @@ class ContainerCommand {
65
71
  });
66
72
  return appContainers ?? [];
67
73
  }
74
+ async getContainerServiceDetails(environmentKey, serviceNames) {
75
+ const { id: appId } = await this.getAppConfig();
76
+ const query = `
77
+ query forge_cli_appContainerServices($appId: ID!, $environmentKey: String!, $serviceNames: [String!]!) {
78
+ appContainerServices(appId: $appId, environmentKey: $environmentKey, serviceNames: $serviceNames) {
79
+ services {
80
+ key
81
+ runningCount
82
+ pendingCount
83
+ maxCount
84
+ minCount
85
+ serviceStatus
86
+ versionStatus
87
+ createdAt
88
+ updatedAt
89
+ containers {
90
+ key
91
+ instances {
92
+ id
93
+ createdAt
94
+ healthStatus
95
+ containerStatus
96
+ imageURI
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }`;
102
+ const { appContainerServices } = await this.client.query(query, {
103
+ appId,
104
+ environmentKey,
105
+ serviceNames
106
+ });
107
+ if (!appContainerServices) {
108
+ throw new UnexpectedAppContainerServicesError();
109
+ }
110
+ return appContainerServices;
111
+ }
68
112
  async deleteContainer(key) {
69
113
  const { id: appId } = await this.getAppConfig();
70
114
  const mutation = `
@@ -1 +1 @@
1
- {"version":3,"file":"container-command.js","sourceRoot":"","sources":["../../src/containers/container-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-command.js","sourceRoot":"","sources":["../../src/containers/container-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { GraphQLClient } from '@forge/cli-shared';
2
+ import { Deployment, DeploymentFilterOptions, IntervalInput, ListAppDeploymentsClient } from '../service/deployment-service';
3
+ export declare class DeploymentsGraphqlClient implements ListAppDeploymentsClient {
4
+ private readonly graphqlClient;
5
+ constructor(graphqlClient: GraphQLClient);
6
+ listDeployments(appId: string, interval: IntervalInput, filter?: DeploymentFilterOptions): Promise<Deployment[]>;
7
+ private getAllDeployments;
8
+ }
9
+ //# sourceMappingURL=deployments-graphql-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments-graphql-client.d.ts","sourceRoot":"","sources":["../../src/deployments/deployments-graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,aAAa,EACb,wBAAwB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,qBAAa,wBAAyB,YAAW,wBAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,eAAe,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,EACvB,MAAM,CAAC,EAAE,uBAAuB,GAC/B,OAAO,CAAC,UAAU,EAAE,CAAC;YAKV,iBAAiB;CAqEhC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeploymentsGraphqlClient = void 0;
4
+ class DeploymentsGraphqlClient {
5
+ graphqlClient;
6
+ constructor(graphqlClient) {
7
+ this.graphqlClient = graphqlClient;
8
+ }
9
+ async listDeployments(appId, interval, filter) {
10
+ const deployments = await this.getAllDeployments(appId, interval, filter);
11
+ return deployments;
12
+ }
13
+ async getAllDeployments(appId, interval, filter) {
14
+ const query = `
15
+ query getAppDeployments($appId: ID!, $interval: IntervalInput!, $first: Int, $after: String) {
16
+ app(id: $appId) {
17
+ deployments(interval: $interval, first: $first, after: $after) @optIn(to: ["xls-deployments-by-interval", "xls-deployments-major-version"]) {
18
+ nodes {
19
+ status
20
+ environmentKey
21
+ buildTag
22
+ majorVersion {
23
+ version
24
+ }
25
+ createdBy {
26
+ accountId
27
+ accountStatus
28
+ name
29
+ }
30
+ createdAt
31
+ }
32
+ pageInfo {
33
+ hasNextPage
34
+ endCursor
35
+ }
36
+ }
37
+ }
38
+ }
39
+ `;
40
+ const output = [];
41
+ let cursor = filter?.after;
42
+ let hasNext = true;
43
+ do {
44
+ const { app } = await this.graphqlClient.query(query, {
45
+ appId,
46
+ interval,
47
+ first: filter?.first || 100,
48
+ after: cursor
49
+ });
50
+ if (!app?.deployments?.nodes) {
51
+ break;
52
+ }
53
+ const { nodes, pageInfo } = app.deployments;
54
+ for (const node of nodes) {
55
+ if (node) {
56
+ output.push({
57
+ environmentKey: node.environmentKey,
58
+ status: node.status,
59
+ buildTag: node.buildTag,
60
+ majorVersion: node.majorVersion,
61
+ createdBy: node.createdBy,
62
+ createdAt: node.createdAt
63
+ });
64
+ }
65
+ }
66
+ cursor = pageInfo.endCursor;
67
+ hasNext = pageInfo.hasNextPage;
68
+ } while (hasNext && cursor);
69
+ return output;
70
+ }
71
+ }
72
+ exports.DeploymentsGraphqlClient = DeploymentsGraphqlClient;
73
+ //# sourceMappingURL=deployments-graphql-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments-graphql-client.js","sourceRoot":"","sources":["../../src/deployments/deployments-graphql-client.ts"],"names":[],"mappings":";;;AASA,MAAa,wBAAwB;IACN;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,eAAe,CAC1B,KAAa,EACb,QAAuB,EACvB,MAAgC;QAEhC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,KAAa,EACb,QAAuB,EACvB,MAAgC;QAEhC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;KAyBb,CAAC;QAEF,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC;QAC3B,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,GAAG;YACD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE;gBACpD,KAAK;gBACL,QAAQ;gBACR,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG;gBAC3B,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE;gBAC5B,MAAM;aACP;YAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC;YAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,IAAI,EAAE;oBACR,MAAM,CAAC,IAAI,CAAC;wBACV,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,SAAS,EAAE,IAAI,CAAC,SAAS;qBAC1B,CAAC,CAAC;iBACJ;aACF;YAED,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC5B,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC;SAChC,QAAQ,OAAO,IAAI,MAAM,EAAE;QAE5B,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAjFD,4DAiFC"}
@@ -0,0 +1,16 @@
1
+ import { CommandLineUI } from '@forge/cli-shared';
2
+ import { DevSpaceClient, DevSpaceDetails, DevSpaceCreateResult } from './graphql-client';
3
+ export declare class DevSpaceService {
4
+ private readonly devSpaceClient;
5
+ constructor(devSpaceClient: DevSpaceClient);
6
+ private fetchAllDevSpaces;
7
+ private doesDevSpaceAlreadyExists;
8
+ getDevSpaces(ui: CommandLineUI): Promise<DevSpaceDetails[]>;
9
+ selectDevSpace(ui: CommandLineUI, devSpaces: DevSpaceDetails[]): Promise<{
10
+ devSpace: DevSpaceDetails;
11
+ isNewlyCreated: boolean;
12
+ } | null>;
13
+ createDevSpaceFlow(ui: CommandLineUI): Promise<DevSpaceCreateResult | null>;
14
+ private promptForNameAndCreate;
15
+ }
16
+ //# sourceMappingURL=devspace-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devspace-service.d.ts","sourceRoot":"","sources":["../../src/devspace/devspace-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAQ,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAMzF,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;YAE7C,iBAAiB;IAU/B,OAAO,CAAC,yBAAyB;IAKpB,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAI3D,cAAc,CACzB,EAAE,EAAE,aAAa,EACjB,SAAS,EAAE,eAAe,EAAE,GAC3B,OAAO,CAAC;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IA2C5D,kBAAkB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAS1E,sBAAsB;CAiCrC"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DevSpaceService = void 0;
4
+ const cli_shared_1 = require("@forge/cli-shared");
5
+ const DEV_SPACE_ERROR_MESSAGES = {
6
+ NAME_ALREADY_EXISTS: 'Developer space with this name already exists'
7
+ };
8
+ class DevSpaceService {
9
+ devSpaceClient;
10
+ constructor(devSpaceClient) {
11
+ this.devSpaceClient = devSpaceClient;
12
+ }
13
+ async fetchAllDevSpaces() {
14
+ const devSpaceIds = await this.devSpaceClient.getDevSpacesWithLinkingAccess();
15
+ if (!devSpaceIds || devSpaceIds.length === 0) {
16
+ return [];
17
+ }
18
+ return await this.devSpaceClient.getDevSpaceDetails(devSpaceIds);
19
+ }
20
+ doesDevSpaceAlreadyExists(error) {
21
+ const errorMessage = error instanceof Error ? error.message : String(error);
22
+ return errorMessage.includes(DEV_SPACE_ERROR_MESSAGES.NAME_ALREADY_EXISTS);
23
+ }
24
+ async getDevSpaces(ui) {
25
+ return await ui.displayTemporaryMessage(() => this.fetchAllDevSpaces(), cli_shared_1.Text.devSpace.fetching);
26
+ }
27
+ async selectDevSpace(ui, devSpaces) {
28
+ try {
29
+ if (devSpaces.length === 0) {
30
+ ui.info(cli_shared_1.Text.devSpace.noSpacesFound(cli_shared_1.Text.devSpace.documentationLink));
31
+ const created = await this.createDevSpaceFlow(ui);
32
+ if (created) {
33
+ return { devSpace: { id: created.id, name: created.name }, isNewlyCreated: true };
34
+ }
35
+ return null;
36
+ }
37
+ const choices = devSpaces.map((ds) => ds.name);
38
+ choices.push(cli_shared_1.Text.devSpace.createNewOption);
39
+ const selectedName = await ui.promptForList(cli_shared_1.Text.devSpace.selectPrompt, choices);
40
+ if (selectedName === cli_shared_1.Text.devSpace.createNewOption) {
41
+ ui.info(cli_shared_1.Text.devSpace.createNewSpaceInfo(cli_shared_1.Text.devSpace.documentationLink));
42
+ ui.emptyLine();
43
+ try {
44
+ const created = await this.createDevSpaceFlow(ui);
45
+ if (created) {
46
+ return { devSpace: { id: created.id, name: created.name }, isNewlyCreated: true };
47
+ }
48
+ return null;
49
+ }
50
+ catch (error) {
51
+ const errorMessage = error instanceof Error ? error.message : String(error);
52
+ ui.error(new Error(cli_shared_1.Text.devSpace.error.create(errorMessage)));
53
+ return null;
54
+ }
55
+ }
56
+ const selectedDevSpace = devSpaces.find((ds) => ds.name === selectedName);
57
+ if (!selectedDevSpace) {
58
+ throw new Error(cli_shared_1.Text.devSpace.error.selectedNotFound);
59
+ }
60
+ return { devSpace: selectedDevSpace, isNewlyCreated: false };
61
+ }
62
+ catch (error) {
63
+ const errorMessage = error instanceof Error ? error.message : String(error);
64
+ ui.error(new Error(cli_shared_1.Text.devSpace.error.fetchOrSelect(errorMessage)));
65
+ return null;
66
+ }
67
+ }
68
+ async createDevSpaceFlow(ui) {
69
+ const cont = await ui.confirm(cli_shared_1.Text.devSpace.createContinuePrompt);
70
+ if (!cont) {
71
+ return null;
72
+ }
73
+ return await this.promptForNameAndCreate(ui);
74
+ }
75
+ async promptForNameAndCreate(ui, isRetry = false) {
76
+ if (isRetry) {
77
+ ui.info(cli_shared_1.Text.devSpace.error.nameAlreadyExists);
78
+ ui.emptyLine();
79
+ }
80
+ else {
81
+ ui.info(cli_shared_1.Text.devSpace.createMessage);
82
+ }
83
+ const name = await ui.promptForText(cli_shared_1.Text.devSpace.createPrompt);
84
+ if (!name || !name.trim()) {
85
+ ui.info(cli_shared_1.Text.devSpace.nameRequired);
86
+ return null;
87
+ }
88
+ ui.emptyLine();
89
+ ui.clearSpinner();
90
+ try {
91
+ const result = await ui.displayProgress(() => this.devSpaceClient.createDevSpace({ name: name.trim() }), cli_shared_1.Text.devSpace.createInProgress, (result) => cli_shared_1.Text.devSpace.createdAndContributing(result.name));
92
+ return result;
93
+ }
94
+ catch (error) {
95
+ if (this.doesDevSpaceAlreadyExists(error)) {
96
+ return await this.promptForNameAndCreate(ui, true);
97
+ }
98
+ throw error;
99
+ }
100
+ }
101
+ }
102
+ exports.DevSpaceService = DevSpaceService;
103
+ //# sourceMappingURL=devspace-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devspace-service.js","sourceRoot":"","sources":["../../src/devspace/devspace-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { GraphQLClient } from '@forge/cli-shared';
2
+ export interface DevSpaceDetails {
3
+ id: string;
4
+ name: string;
5
+ }
6
+ export interface DevSpaceBulkResult {
7
+ developerSpaceId: string;
8
+ success: boolean;
9
+ details?: {
10
+ name: string;
11
+ logo?: string;
12
+ };
13
+ error?: {
14
+ code: string;
15
+ message: string;
16
+ };
17
+ }
18
+ export interface DevConsoleCreateDeveloperSpaceInput {
19
+ name: string;
20
+ }
21
+ export interface DevSpaceCreateResult {
22
+ id: string;
23
+ name: string;
24
+ }
25
+ export interface DevSpaceClient {
26
+ getDevSpacesWithLinkingAccess(): Promise<string[]>;
27
+ getDevSpaceDetails(devSpaceIds: string[]): Promise<DevSpaceDetails[]>;
28
+ getDevSpaceDetailsBulk(devSpaceIds: string[]): Promise<DevSpaceBulkResult[]>;
29
+ createDevSpace(input: DevConsoleCreateDeveloperSpaceInput): Promise<DevSpaceCreateResult>;
30
+ }
31
+ export declare class DevSpaceGraphQLClient implements DevSpaceClient {
32
+ private readonly graphqlClient;
33
+ constructor(graphqlClient: GraphQLClient);
34
+ getDevSpacesWithLinkingAccess(): Promise<string[]>;
35
+ getDevSpaceDetails(devSpaceIds: string[]): Promise<DevSpaceDetails[]>;
36
+ getDevSpaceDetailsBulk(devSpaceIds: string[]): Promise<DevSpaceBulkResult[]>;
37
+ createDevSpace(input: DevConsoleCreateDeveloperSpaceInput): Promise<DevSpaceCreateResult>;
38
+ }
39
+ //# sourceMappingURL=graphql-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/devspace/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,aAAa,EAAwB,MAAM,mBAAmB,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,6BAA6B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACtE,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC7E,cAAc,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC3F;AAED,qBAAa,qBAAsB,YAAW,cAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,6BAA6B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAoBlD,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA4BrE,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmC5E,cAAc,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA+CvG"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DevSpaceGraphQLClient = void 0;
4
+ const cli_shared_1 = require("@forge/cli-shared");
5
+ class DevSpaceGraphQLClient {
6
+ graphqlClient;
7
+ constructor(graphqlClient) {
8
+ this.graphqlClient = graphqlClient;
9
+ }
10
+ async getDevSpacesWithLinkingAccess() {
11
+ const query = `
12
+ query GetDevSpaceWithLinkingAccess {
13
+ ecosystem {
14
+ devConsole {
15
+ getDeveloperSpaceWithLinkingAccess
16
+ }
17
+ }
18
+ }
19
+ `;
20
+ const result = await this.graphqlClient.query(query, {});
21
+ const devSpaceIds = result?.ecosystem?.devConsole?.getDeveloperSpaceWithLinkingAccess;
22
+ if (!devSpaceIds || !Array.isArray(devSpaceIds)) {
23
+ return [];
24
+ }
25
+ return devSpaceIds;
26
+ }
27
+ async getDevSpaceDetails(devSpaceIds) {
28
+ const batchSize = 10;
29
+ const batches = [];
30
+ for (let i = 0; i < devSpaceIds.length; i += batchSize) {
31
+ batches.push(devSpaceIds.slice(i, i + batchSize));
32
+ }
33
+ const batchResults = await Promise.all(batches.map((batch) => this.getDevSpaceDetailsBulk(batch)));
34
+ const devSpaceDetails = [];
35
+ for (const results of batchResults) {
36
+ for (const result of results) {
37
+ if (result.success && result.details) {
38
+ devSpaceDetails.push({
39
+ id: result.developerSpaceId,
40
+ name: result.details.name
41
+ });
42
+ }
43
+ }
44
+ }
45
+ return devSpaceDetails;
46
+ }
47
+ async getDevSpaceDetailsBulk(devSpaceIds) {
48
+ const query = `
49
+ query GetDevSpaceDetails($devSpaceIds: [String!]!) {
50
+ ecosystem {
51
+ devConsole {
52
+ getDeveloperSpaceDetails(developerSpaceIds: $devSpaceIds) {
53
+ results {
54
+ developerSpaceId
55
+ success
56
+ details {
57
+ name
58
+ }
59
+ error {
60
+ code
61
+ message
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ `;
69
+ const result = await this.graphqlClient.query(query, {
70
+ devSpaceIds: devSpaceIds
71
+ });
72
+ const bulkResult = result?.ecosystem?.devConsole?.getDeveloperSpaceDetails;
73
+ if (!bulkResult || !bulkResult.results || !Array.isArray(bulkResult.results)) {
74
+ return [];
75
+ }
76
+ return bulkResult.results;
77
+ }
78
+ async createDevSpace(input) {
79
+ const mutation = `
80
+ mutation CreateDeveloperSpace($input: DevConsoleCreateDeveloperSpaceInput!) {
81
+ ecosystem {
82
+ devConsole {
83
+ createDeveloperSpace(input: $input) {
84
+ devSpace {
85
+ id
86
+ name
87
+ }
88
+ success
89
+ errors {
90
+ message
91
+ extensions {
92
+ statusCode
93
+ errorType
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ `;
101
+ const { response: { ecosystem: { devConsole: { createDeveloperSpace: { devSpace, success, errors } } } }, requestId } = await this.graphqlClient.mutate(mutation, {
102
+ input
103
+ });
104
+ const error = (0, cli_shared_1.getError)(errors);
105
+ if (!success) {
106
+ throw new cli_shared_1.GraphQlMutationError(`${error.message} (requestId: ${requestId || 'unknown'})`, {
107
+ requestId,
108
+ code: error.code,
109
+ statusCode: error.statusCode
110
+ });
111
+ }
112
+ return devSpace;
113
+ }
114
+ }
115
+ exports.DevSpaceGraphQLClient = DevSpaceGraphQLClient;
116
+ //# sourceMappingURL=graphql-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-client.js","sourceRoot":"","sources":["../../src/devspace/graphql-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './graphql-client';
2
+ export * from './devspace-service';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/devspace/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./graphql-client"), exports);
5
+ tslib_1.__exportStar(require("./devspace-service"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devspace/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,6DAAmC"}
@@ -0,0 +1,37 @@
1
+ import { AppConfigProvider } from '@forge/cli-shared';
2
+ export interface Deployment {
3
+ environmentKey: string;
4
+ status: string;
5
+ buildTag?: string;
6
+ majorVersion?: {
7
+ version: string;
8
+ };
9
+ createdBy?: {
10
+ accountId: string;
11
+ accountStatus: string;
12
+ name: string;
13
+ };
14
+ createdAt: string;
15
+ }
16
+ export interface AppDeploymentsList {
17
+ deployments: Deployment[];
18
+ }
19
+ export interface DeploymentFilterOptions {
20
+ environmentKey?: string;
21
+ first?: number;
22
+ after?: string;
23
+ }
24
+ export interface ListAppDeploymentsClient {
25
+ listDeployments(appId: string, interval: IntervalInput, filter?: DeploymentFilterOptions): Promise<Deployment[]>;
26
+ }
27
+ export interface IntervalInput {
28
+ startTime?: string;
29
+ endTime?: string;
30
+ }
31
+ export declare class DeploymentService {
32
+ private readonly getAppConfig;
33
+ private readonly listDeploymentsClient;
34
+ constructor(getAppConfig: AppConfigProvider, listDeploymentsClient: ListAppDeploymentsClient);
35
+ listAppDeployments(interval?: IntervalInput, filter?: DeploymentFilterOptions): Promise<AppDeploymentsList>;
36
+ }
37
+ //# sourceMappingURL=deployment-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-service.d.ts","sourceRoot":"","sources":["../../src/service/deployment-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAClH;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBADrB,YAAY,EAAE,iBAAiB,EAC/B,qBAAqB,EAAE,wBAAwB;IAGrD,kBAAkB,CAC7B,QAAQ,CAAC,EAAE,aAAa,EACxB,MAAM,CAAC,EAAE,uBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC;CAe/B"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeploymentService = void 0;
4
+ class DeploymentService {
5
+ getAppConfig;
6
+ listDeploymentsClient;
7
+ constructor(getAppConfig, listDeploymentsClient) {
8
+ this.getAppConfig = getAppConfig;
9
+ this.listDeploymentsClient = listDeploymentsClient;
10
+ }
11
+ async listAppDeployments(interval, filter) {
12
+ const { id: appId } = await this.getAppConfig();
13
+ const defaultInterval = interval
14
+ ? interval
15
+ : {
16
+ startTime: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],
17
+ endTime: new Date().toISOString().split('T')[0]
18
+ };
19
+ const deployments = await this.listDeploymentsClient.listDeployments(appId, defaultInterval, filter);
20
+ return { deployments };
21
+ }
22
+ }
23
+ exports.DeploymentService = DeploymentService;
24
+ //# sourceMappingURL=deployment-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-service.js","sourceRoot":"","sources":["../../src/service/deployment-service.ts"],"names":[],"mappings":";;;AAoCA,MAAa,iBAAiB;IAET;IACA;IAFnB,YACmB,YAA+B,EAC/B,qBAA+C;QAD/C,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,0BAAqB,GAArB,qBAAqB,CAA0B;IAC/D,CAAC;IAEG,KAAK,CAAC,kBAAkB,CAC7B,QAAwB,EACxB,MAAgC;QAEhC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAGhD,MAAM,eAAe,GAAkB,QAAQ;YAC7C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC;gBACE,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtF,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAChD,CAAC;QAEN,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAErG,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;CACF;AAxBD,8CAwBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "12.2.0-next.5-experimental-255e232",
3
+ "version": "12.3.0-next.0-experimental-47556b0",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -18,15 +18,15 @@
18
18
  "postinstall": "node -e \"fs.existsSync('./out/bin/postinstall.js') && require('./out/bin/postinstall.js')\""
19
19
  },
20
20
  "dependencies": {
21
- "@forge/bundler": "6.1.1-next.5-experimental-255e232",
22
- "@forge/cli-shared": "8.2.0-next.5-experimental-255e232",
23
- "@forge/egress": "2.0.1",
24
- "@forge/lint": "5.10.0-next.5-experimental-255e232",
25
- "@forge/manifest": "10.1.1-next.0-experimental-255e232",
21
+ "@forge/bundler": "6.1.2-next.0-experimental-47556b0",
22
+ "@forge/cli-shared": "8.3.0-next.0-experimental-47556b0",
23
+ "@forge/egress": "2.0.2-next.0-experimental-47556b0",
24
+ "@forge/lint": "5.10.1-next.0-experimental-47556b0",
25
+ "@forge/manifest": "10.2.1-next.0-experimental-47556b0",
26
26
  "@forge/i18n": "0.0.7",
27
- "@forge/runtime": "6.0.1",
28
- "@forge/tunnel": "6.0.2-next.5-experimental-255e232",
29
- "@forge/util": "2.0.0-next.0-experimental-255e232",
27
+ "@forge/runtime": "6.0.2",
28
+ "@forge/tunnel": "6.0.3-next.0-experimental-47556b0",
29
+ "@forge/util": "2.0.0",
30
30
  "@sentry/node": "7.106.0",
31
31
  "ajv": "^8.12.0",
32
32
  "archiver": "^7.0.1",
@@ -42,7 +42,7 @@
42
42
  "diff": "^7.0.0",
43
43
  "env-paths": "^2.2.1",
44
44
  "exponential-backoff": "^3.1.2",
45
- "form-data": "^4.0.3",
45
+ "form-data": "^4.0.4",
46
46
  "fs-extra": "^11.2.0",
47
47
  "hidefile": "^3.0.0",
48
48
  "latest-version": "^7.0.0",