@forge/cli 4.5.2-next.4 → 5.0.0-next.1
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 +51 -0
- package/npm-shrinkwrap.json +295 -18
- package/out/analytics-client/analytics-client.d.ts +0 -1
- package/out/analytics-client/analytics-client.d.ts.map +1 -1
- package/out/analytics-client/analytics-client.js +0 -15
- package/out/command-line/command.d.ts.map +1 -1
- package/out/command-line/command.js +5 -4
- package/out/command-line/controller/feedback-controller.d.ts.map +1 -1
- package/out/command-line/controller/feedback-controller.js +2 -2
- package/out/command-line/controller/install-controller.d.ts.map +1 -1
- package/out/command-line/controller/install-controller.js +8 -5
- package/out/command-line/controller/tunnel-controller.js +1 -1
- package/out/command-line/dependency-injection.d.ts +1 -0
- package/out/command-line/dependency-injection.d.ts.map +1 -1
- package/out/command-line/dependency-injection.js +11 -7
- package/out/command-line/register-authentication-command.d.ts.map +1 -1
- package/out/command-line/register-authentication-command.js +8 -6
- package/out/installations/graphql-client.d.ts +13 -12
- package/out/installations/graphql-client.d.ts.map +1 -1
- package/out/installations/graphql-client.js +48 -88
- package/out/installations/site-translation/bitbucket.d.ts +24 -0
- package/out/installations/site-translation/bitbucket.d.ts.map +1 -0
- package/out/installations/site-translation/bitbucket.js +112 -0
- package/out/installations/site-translation/cloudid-products.d.ts +17 -0
- package/out/installations/site-translation/cloudid-products.d.ts.map +1 -0
- package/out/installations/site-translation/cloudid-products.js +89 -0
- package/out/installations/site-translation/index.d.ts +4 -0
- package/out/installations/site-translation/index.d.ts.map +1 -0
- package/out/installations/site-translation/index.js +6 -0
- package/out/installations/site-translation/site-translation.d.ts +12 -0
- package/out/installations/site-translation/site-translation.d.ts.map +1 -0
- package/out/installations/site-translation/site-translation.js +2 -0
- package/out/service/tunnel-service.d.ts +4 -12
- package/out/service/tunnel-service.d.ts.map +1 -1
- package/package.json +5 -8
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BitbucketTranslator = exports.getBitbucketEndpoint = exports.InvalidResponseError = exports.InvalidWorkspaceError = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
6
|
+
const url_1 = require("url");
|
|
7
|
+
const cs_ari_1 = require("@forge/util/packages/cs-ari");
|
|
8
|
+
const cli_shared_1 = require("@forge/cli-shared");
|
|
9
|
+
class InvalidWorkspaceError extends Error {
|
|
10
|
+
constructor(url) {
|
|
11
|
+
super(cli_shared_1.Text.install.error.invalidWorkspace(url));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.InvalidWorkspaceError = InvalidWorkspaceError;
|
|
15
|
+
class InvalidResponseError extends Error {
|
|
16
|
+
constructor(url) {
|
|
17
|
+
super(cli_shared_1.Text.install.error.site(url.toString()));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.InvalidResponseError = InvalidResponseError;
|
|
21
|
+
const DEFAULT_BITBUCKET_ENDPOINT = 'https://api.bitbucket.org';
|
|
22
|
+
const BITBUCKET_URL = new url_1.URL('https://bitbucket.org');
|
|
23
|
+
const RESOURCE_TYPE = 'workspace';
|
|
24
|
+
const RESOURCE_OWNER = 'bitbucket';
|
|
25
|
+
exports.getBitbucketEndpoint = () => {
|
|
26
|
+
return process.env.BITBUCKET_ENDPOINT || DEFAULT_BITBUCKET_ENDPOINT;
|
|
27
|
+
};
|
|
28
|
+
class BitbucketTranslator {
|
|
29
|
+
ariBelongsToProduct(ari) {
|
|
30
|
+
return ari.resourceOwner === RESOURCE_OWNER;
|
|
31
|
+
}
|
|
32
|
+
async buildInstallationContext(product, site) {
|
|
33
|
+
const workspaceId = await this.getWorkspaceId(site);
|
|
34
|
+
const ari = new cs_ari_1.ResourceIdentifier({
|
|
35
|
+
resourceOwner: product.toLowerCase(),
|
|
36
|
+
resourceType: RESOURCE_TYPE,
|
|
37
|
+
resourceId: workspaceId
|
|
38
|
+
});
|
|
39
|
+
return ari;
|
|
40
|
+
}
|
|
41
|
+
async getSitesForResourceAris(aris) {
|
|
42
|
+
const workspaceIds = aris.map((ari) => ari.resourceId);
|
|
43
|
+
const workspaceAriToHostname = {};
|
|
44
|
+
const workspaceUrls = await Promise.all(workspaceIds.map((workspaceId) => this.getWorkspaceUrl(workspaceId)));
|
|
45
|
+
aris.forEach((ari, index) => {
|
|
46
|
+
const result = workspaceUrls[index];
|
|
47
|
+
workspaceAriToHostname[ari.toString()] = result ? result.toString() : ari.resourceId;
|
|
48
|
+
});
|
|
49
|
+
return workspaceAriToHostname;
|
|
50
|
+
}
|
|
51
|
+
async getWorkspaceId(site) {
|
|
52
|
+
const workspaceName = this.extractWorkspaceName(site);
|
|
53
|
+
const url = this.buildFetchUrl(workspaceName);
|
|
54
|
+
const res = await node_fetch_1.default(url);
|
|
55
|
+
if (!res.ok) {
|
|
56
|
+
throw new InvalidWorkspaceError(site);
|
|
57
|
+
}
|
|
58
|
+
let json;
|
|
59
|
+
try {
|
|
60
|
+
json = await res.json();
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
throw new InvalidResponseError(site);
|
|
64
|
+
}
|
|
65
|
+
if (json && json.uuid) {
|
|
66
|
+
return this.extractWorkspaceId(json.uuid);
|
|
67
|
+
}
|
|
68
|
+
throw new InvalidResponseError(site);
|
|
69
|
+
}
|
|
70
|
+
async getWorkspaceUrl(workspaceId) {
|
|
71
|
+
const url = this.buildFetchUrl(this.decorateWorkspaceId(workspaceId));
|
|
72
|
+
const res = await node_fetch_1.default(url);
|
|
73
|
+
if (!res.ok) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
let json;
|
|
77
|
+
try {
|
|
78
|
+
json = await res.json();
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
if (json && json.slug) {
|
|
84
|
+
return this.buildWorkspaceUrl(json.slug);
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
decorateWorkspaceId(workspaceId) {
|
|
89
|
+
return `%7B${workspaceId}%7D`;
|
|
90
|
+
}
|
|
91
|
+
extractWorkspaceId(workspaceIdWithBraces) {
|
|
92
|
+
return workspaceIdWithBraces.replace(/\{|\}/gi, '');
|
|
93
|
+
}
|
|
94
|
+
buildFetchUrl(workspaceNameOrId) {
|
|
95
|
+
const urlObj = new url_1.URL(`${exports.getBitbucketEndpoint()}/2.0/workspaces/${workspaceNameOrId}`);
|
|
96
|
+
return urlObj.toString();
|
|
97
|
+
}
|
|
98
|
+
extractWorkspaceName(workspaceURL) {
|
|
99
|
+
if (workspaceURL.hostname !== BITBUCKET_URL.hostname) {
|
|
100
|
+
throw new InvalidWorkspaceError(workspaceURL);
|
|
101
|
+
}
|
|
102
|
+
const pathnames = workspaceURL.pathname.substr(1).split('/');
|
|
103
|
+
if (!pathnames.length) {
|
|
104
|
+
throw new InvalidWorkspaceError(workspaceURL);
|
|
105
|
+
}
|
|
106
|
+
return pathnames[0];
|
|
107
|
+
}
|
|
108
|
+
buildWorkspaceUrl(workspaceName) {
|
|
109
|
+
return new url_1.URL(`/${workspaceName}/`, BITBUCKET_URL);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.BitbucketTranslator = BitbucketTranslator;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { SiteTranslator, ResourcefulAri } from './site-translation';
|
|
3
|
+
import { URL } from 'url';
|
|
4
|
+
import { Ari } from '@forge/util/packages/cs-ari';
|
|
5
|
+
import { GraphQLClient } from '@forge/cli-shared';
|
|
6
|
+
export declare class InvalidAtlassianSiteError extends Error {
|
|
7
|
+
constructor(url: URL);
|
|
8
|
+
}
|
|
9
|
+
export declare class CloudIdTranslator implements SiteTranslator {
|
|
10
|
+
private graphqlClient;
|
|
11
|
+
constructor(graphqlClient: GraphQLClient);
|
|
12
|
+
ariBelongsToProduct(ari: ResourcefulAri): boolean;
|
|
13
|
+
buildInstallationContext(product: string, site: URL): Promise<Ari>;
|
|
14
|
+
getSitesForResourceAris(aris: ResourcefulAri[]): Promise<Record<string, string>>;
|
|
15
|
+
private getCloudId;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=cloudid-products.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudid-products.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/cloudid-products.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAsB,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,aAAa,EAA8B,MAAM,mBAAmB,CAAC;AAE9E,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,GAAG,EAAE,GAAG;CAGrB;AAyBD,qBAAa,iBAAkB,YAAW,cAAc;IAC1C,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEzC,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO;IAI3C,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAUlE,uBAAuB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YA6C/E,UAAU;CAezB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloudIdTranslator = exports.InvalidAtlassianSiteError = void 0;
|
|
4
|
+
const cs_ari_1 = require("@forge/util/packages/cs-ari");
|
|
5
|
+
const cli_shared_1 = require("@forge/cli-shared");
|
|
6
|
+
class InvalidAtlassianSiteError extends Error {
|
|
7
|
+
constructor(url) {
|
|
8
|
+
super(cli_shared_1.Text.install.error.invalidAtlassianSite(url));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.InvalidAtlassianSiteError = InvalidAtlassianSiteError;
|
|
12
|
+
const RESOURCE_TYPE = 'site';
|
|
13
|
+
const tenantContextsToCloudId = (url, contexts) => {
|
|
14
|
+
if (!contexts.length) {
|
|
15
|
+
throw new InvalidAtlassianSiteError(url);
|
|
16
|
+
}
|
|
17
|
+
const context = contexts[0];
|
|
18
|
+
if (!context || !context.cloudId) {
|
|
19
|
+
throw new InvalidAtlassianSiteError(url);
|
|
20
|
+
}
|
|
21
|
+
return context.cloudId;
|
|
22
|
+
};
|
|
23
|
+
const tenantToHostname = (tenantInfo) => {
|
|
24
|
+
if (!tenantInfo) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return tenantInfo.hostName || null;
|
|
28
|
+
};
|
|
29
|
+
class CloudIdTranslator {
|
|
30
|
+
constructor(graphqlClient) {
|
|
31
|
+
this.graphqlClient = graphqlClient;
|
|
32
|
+
}
|
|
33
|
+
ariBelongsToProduct(ari) {
|
|
34
|
+
return ari.resourceType === RESOURCE_TYPE;
|
|
35
|
+
}
|
|
36
|
+
async buildInstallationContext(product, site) {
|
|
37
|
+
const cloudId = await this.getCloudId(site);
|
|
38
|
+
const ari = new cs_ari_1.ResourceIdentifier({
|
|
39
|
+
resourceOwner: product.toLowerCase(),
|
|
40
|
+
resourceType: RESOURCE_TYPE,
|
|
41
|
+
resourceId: cloudId
|
|
42
|
+
});
|
|
43
|
+
return ari;
|
|
44
|
+
}
|
|
45
|
+
async getSitesForResourceAris(aris) {
|
|
46
|
+
const MAX_CLOUD_IDS_AT_ONCE = 20;
|
|
47
|
+
const cloudIds = [...new Set(aris.map((ari) => ari.resourceId))];
|
|
48
|
+
const cloudIdsChunks = [];
|
|
49
|
+
for (let i = 0; i < cloudIds.length; i += MAX_CLOUD_IDS_AT_ONCE) {
|
|
50
|
+
cloudIdsChunks.push(cloudIds.slice(i, i + MAX_CLOUD_IDS_AT_ONCE));
|
|
51
|
+
}
|
|
52
|
+
const query = `
|
|
53
|
+
query forge_cli_getHostnameForTenantContexts($cloudIds: [ID!]!) {
|
|
54
|
+
tenantContexts(cloudIds: $cloudIds) {
|
|
55
|
+
hostName
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
const results = await Promise.all(cloudIdsChunks.map((cloudIdsChunk) => this.graphqlClient.query(query, {
|
|
60
|
+
cloudIds: cloudIdsChunk
|
|
61
|
+
})));
|
|
62
|
+
const tenantContexts = [].concat(...results.map((result) => result.tenantContexts || []));
|
|
63
|
+
const cloudIdToHostname = {};
|
|
64
|
+
const ariToHostname = {};
|
|
65
|
+
cloudIds.forEach((cloudId, index) => {
|
|
66
|
+
const maybeHostname = tenantToHostname(tenantContexts[index]);
|
|
67
|
+
cloudIdToHostname[cloudId] = maybeHostname || cloudId;
|
|
68
|
+
});
|
|
69
|
+
aris.forEach((ari) => {
|
|
70
|
+
ariToHostname[ari.toString()] = cloudIdToHostname[ari.resourceId];
|
|
71
|
+
});
|
|
72
|
+
return ariToHostname;
|
|
73
|
+
}
|
|
74
|
+
async getCloudId(site) {
|
|
75
|
+
const query = `
|
|
76
|
+
query forge_cli_getCloudIfForTenantContexts($hostNames: [String!]) {
|
|
77
|
+
tenantContexts(hostNames: $hostNames) {
|
|
78
|
+
cloudId
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
`;
|
|
82
|
+
const result = await this.graphqlClient.query(query, {
|
|
83
|
+
hostNames: [site.hostname]
|
|
84
|
+
});
|
|
85
|
+
const tenantContexts = result.tenantContexts || [];
|
|
86
|
+
return tenantContextsToCloudId(site, tenantContexts);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.CloudIdTranslator = CloudIdTranslator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,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("./bitbucket"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./cloudid-products"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./site-translation"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { URL } from 'url';
|
|
3
|
+
import { Ari } from '@forge/util/packages/cs-ari';
|
|
4
|
+
export interface SiteTranslator {
|
|
5
|
+
buildInstallationContext: (product: string, site: URL) => Promise<Ari>;
|
|
6
|
+
getSitesForResourceAris: (ari: ResourcefulAri[]) => Promise<Record<string, string>>;
|
|
7
|
+
ariBelongsToProduct: (ari: ResourcefulAri) => boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ResourcefulAri extends Ari {
|
|
10
|
+
resourceId: string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=site-translation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-translation.d.ts","sourceRoot":"","sources":["../../../src/installations/site-translation/site-translation.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,wBAAwB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvE,uBAAuB,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpF,mBAAmB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;CACvD;AAED,MAAM,WAAW,cAAe,SAAQ,GAAG;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HiddenError, PersonalApiCredentialsValidated } from '@forge/cli-shared';
|
|
1
|
+
import { HiddenError, PersonalApiCredentials, PersonalApiCredentialsValidated } from '@forge/cli-shared';
|
|
2
2
|
import { spawn } from 'cross-spawn';
|
|
3
3
|
import { DockerService } from './docker-service';
|
|
4
4
|
import { ConfigFilePortFindingService } from './port-finding-service';
|
|
@@ -14,7 +14,7 @@ export declare abstract class TunnelService {
|
|
|
14
14
|
protected readonly configFilePortFindingService: ConfigFilePortFindingService;
|
|
15
15
|
constructor(configFilePortFindingService: ConfigFilePortFindingService);
|
|
16
16
|
abstract run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean, onError?: (err: Error) => void): Promise<void>;
|
|
17
|
-
protected getDockerOptions(tunnelOptions: TunnelOptions, debugEnabled: boolean, { email, token }:
|
|
17
|
+
protected getDockerOptions(tunnelOptions: TunnelOptions, debugEnabled: boolean, { email, token }: PersonalApiCredentials): Promise<string[]>;
|
|
18
18
|
protected getPortOptions(port: number, resourcePorts: Record<string, number>, cspReporterPort: number | undefined): string[];
|
|
19
19
|
protected getResourcePortEnvVarOption(resourcePorts: Record<string, number>): string[];
|
|
20
20
|
protected getUserEnvironmentVariablesOptions(): string[];
|
|
@@ -28,21 +28,13 @@ export declare abstract class TunnelService {
|
|
|
28
28
|
protected getVolumeOptions(): string[];
|
|
29
29
|
}
|
|
30
30
|
export declare class LocalTunnelService extends TunnelService {
|
|
31
|
-
run(tunnelOptions: TunnelOptions, creds:
|
|
32
|
-
email: string;
|
|
33
|
-
token: string;
|
|
34
|
-
accountId: string;
|
|
35
|
-
}, debugEnabled: boolean, onError: (err: Error) => void): Promise<void>;
|
|
31
|
+
run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentials, debugEnabled: boolean, onError: (err: Error) => void): Promise<void>;
|
|
36
32
|
}
|
|
37
33
|
export declare class DockerTunnelService extends TunnelService {
|
|
38
34
|
private readonly dockerService;
|
|
39
35
|
private readonly analyticsService;
|
|
40
36
|
constructor(configFilePortFindingService: ConfigFilePortFindingService, dockerService: DockerService, analyticsService: TunnelAnalyticsService);
|
|
41
|
-
run(tunnelOptions: TunnelOptions, creds:
|
|
42
|
-
email: string;
|
|
43
|
-
token: string;
|
|
44
|
-
accountId: string;
|
|
45
|
-
}, debugEnabled: boolean): Promise<void>;
|
|
37
|
+
run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean): Promise<void>;
|
|
46
38
|
bootstrapDocker(): Promise<ReturnType<typeof spawn>>;
|
|
47
39
|
private validateDockerVersion;
|
|
48
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOpC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,eAAO,MAAM,cAAc,wBAAwB,CAAC;AAcpD,eAAO,MAAM,UAAU,QAEuB,CAAC;AAE/C,qBAAa,uBAAwB,SAAQ,WAAW;CAAG;AAE3D,8BAAsB,aAAa;IACrB,SAAS,CAAC,QAAQ,CAAC,4BAA4B,EAAE,4BAA4B;gBAA1D,4BAA4B,EAAE,4BAA4B;aAEzE,GAAG,CACjB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,+BAA+B,EACtC,YAAY,EAAE,OAAO,EACrB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC;cAEA,gBAAgB,CAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,OAAO,EACrB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,sBAAsB,GACvC,OAAO,CAAC,MAAM,EAAE,CAAC;IA+BpB,SAAS,CAAC,cAAc,CACtB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,MAAM,EAAE;IAwBX,SAAS,CAAC,2BAA2B,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE;IAItF,SAAS,CAAC,kCAAkC,IAAI,MAAM,EAAE;IAUxD,SAAS,CAAC,wBAAwB,CAAC,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ1F,SAAS,CAAC,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAYvF,SAAS,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAQ3C,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAE;CAavC;AAED,qBAAa,kBAAmB,SAAQ,aAAa;IACtC,GAAG,CACd,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,sBAAsB,EAC7B,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;CA0BjB;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IAGlD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAFjC,4BAA4B,EAAE,4BAA4B,EACzC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,sBAAsB;IAK9C,GAAG,CACd,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,+BAA+B,EACtC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,IAAI,CAAC;IA2BH,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;YAKnD,qBAAqB;CASpC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forge/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0-next.1",
|
|
4
4
|
"description": "A command line interface for managing Atlassian-hosted apps",
|
|
5
5
|
"author": "Atlassian",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -18,11 +18,11 @@
|
|
|
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": "3.0.
|
|
22
|
-
"@forge/cli-shared": "
|
|
21
|
+
"@forge/bundler": "3.0.12-next.1",
|
|
22
|
+
"@forge/cli-shared": "3.0.0-next.1",
|
|
23
23
|
"@forge/csp": "^1.11.0",
|
|
24
|
-
"@forge/lint": "3.2.
|
|
25
|
-
"@forge/manifest": "4.
|
|
24
|
+
"@forge/lint": "3.2.3-next.1",
|
|
25
|
+
"@forge/manifest": "4.1.0-next.0",
|
|
26
26
|
"@forge/util": "1.2.0",
|
|
27
27
|
"ajv": "^6.12.5",
|
|
28
28
|
"archiver": "^5.2.0",
|
|
@@ -75,9 +75,6 @@
|
|
|
75
75
|
"jest-fixtures": "^0.6.0",
|
|
76
76
|
"memfs": "^3.4.1"
|
|
77
77
|
},
|
|
78
|
-
"optionalDependencies": {
|
|
79
|
-
"keytar": "^7.0.0"
|
|
80
|
-
},
|
|
81
78
|
"engines": {
|
|
82
79
|
"node": ">=12.13.1"
|
|
83
80
|
}
|