@forge/cli-shared 2.6.2-next.4 → 3.0.0-next.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 +27 -0
- package/out/auth/index.d.ts +0 -1
- package/out/auth/index.d.ts.map +1 -1
- package/out/auth/index.js +0 -1
- package/out/auth/personal/credential-store.d.ts +51 -0
- package/out/auth/personal/credential-store.d.ts.map +1 -0
- package/out/auth/personal/credential-store.js +170 -0
- package/out/auth/personal/index.d.ts +1 -4
- package/out/auth/personal/index.d.ts.map +1 -1
- package/out/auth/personal/index.js +1 -4
- package/out/auth/personal/login.d.ts +2 -2
- package/out/auth/personal/login.d.ts.map +1 -1
- package/out/auth/personal/login.js +1 -1
- package/out/auth/personal/logout.d.ts +2 -2
- package/out/auth/personal/logout.d.ts.map +1 -1
- package/out/auth/personal/token-authenticator.d.ts +3 -3
- package/out/auth/personal/token-authenticator.d.ts.map +1 -1
- package/out/auth/personal/token-authenticator.js +4 -4
- package/out/graphql/graphql-types.d.ts +729 -104
- package/out/graphql/graphql-types.d.ts.map +1 -1
- package/out/graphql/graphql-types.js +68 -2
- package/out/graphql/mutation-aware-graphql-client.d.ts +1 -1
- package/out/service/feature-flag-service.d.ts +3 -3
- package/out/service/feature-flag-service.d.ts.map +1 -1
- package/out/service/feature-flag-service.js +3 -3
- package/out/shared/product.d.ts +4 -1
- package/out/shared/product.d.ts.map +1 -1
- package/out/shared/product.js +11 -4
- package/out/shared/validate.d.ts +1 -1
- package/out/shared/validate.d.ts.map +1 -1
- package/out/shared/validate.js +5 -1
- package/out/ui/text.d.ts +8 -3
- package/out/ui/text.d.ts.map +1 -1
- package/out/ui/text.js +26 -9
- package/package.json +3 -5
- package/out/auth/credentials-store-provider.d.ts +0 -4
- package/out/auth/credentials-store-provider.d.ts.map +0 -1
- package/out/auth/credentials-store-provider.js +0 -11
- package/out/auth/personal/abstract-token-store-getter.d.ts +0 -13
- package/out/auth/personal/abstract-token-store-getter.d.ts.map +0 -1
- package/out/auth/personal/abstract-token-store-getter.js +0 -31
- package/out/auth/personal/token-store-cache.d.ts +0 -12
- package/out/auth/personal/token-store-cache.d.ts.map +0 -1
- package/out/auth/personal/token-store-cache.js +0 -41
- package/out/auth/personal/token-store-keytar.d.ts +0 -23
- package/out/auth/personal/token-store-keytar.d.ts.map +0 -1
- package/out/auth/personal/token-store-keytar.js +0 -101
- package/out/auth/personal/token-store.d.ts +0 -28
- package/out/auth/personal/token-store.d.ts.map +0 -1
- package/out/auth/personal/token-store.js +0 -21
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { AbstractPersonalApiCredentialsGetter } from './abstract-token-store-getter';
|
|
2
|
-
import { PersonalApiCredentialsDeleter, PersonalApiCredentialsSetter, PersonalApiCredentialsValidated } from './token-store';
|
|
3
|
-
export declare class CachePersonalApiCredentialsStore extends AbstractPersonalApiCredentialsGetter implements PersonalApiCredentialsSetter, PersonalApiCredentialsDeleter {
|
|
4
|
-
protected readonly graphqlGateway: string;
|
|
5
|
-
private cachedConfig;
|
|
6
|
-
constructor(graphqlGateway: string);
|
|
7
|
-
getCredentialsImpl(): Promise<PersonalApiCredentialsValidated>;
|
|
8
|
-
getInstructionsWhenInvalidImpl(): string;
|
|
9
|
-
deleteCredentials(): Promise<void>;
|
|
10
|
-
setCredentials(credentials: PersonalApiCredentialsValidated): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=token-store-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token-store-cache.d.ts","sourceRoot":"","sources":["../../../src/auth/personal/token-store-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAEL,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,eAAe,CAAC;AAOvB,qBAAa,gCAAiC,SAAQ,oCACpD,YAAW,4BAA4B,EAAE,6BAA6B;IAG1D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAFrD,OAAO,CAAC,YAAY,CAAa;gBAEF,cAAc,EAAE,MAAM;IAK9C,kBAAkB,IAAI,OAAO,CAAC,+BAA+B,CAAC;IAU9D,8BAA8B,IAAI,MAAM;IAI/C,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;CAM5E"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CachePersonalApiCredentialsStore = void 0;
|
|
4
|
-
const ui_1 = require("../../ui");
|
|
5
|
-
const abstract_token_store_getter_1 = require("./abstract-token-store-getter");
|
|
6
|
-
const token_store_1 = require("./token-store");
|
|
7
|
-
const cache_1 = require("../../cache");
|
|
8
|
-
const FORGE_CLI_PACKAGE = '@forge/cli';
|
|
9
|
-
const CACHE_CREDENTIALS_KEY = 'forge-credentials';
|
|
10
|
-
class CachePersonalApiCredentialsStore extends abstract_token_store_getter_1.AbstractPersonalApiCredentialsGetter {
|
|
11
|
-
constructor(graphqlGateway) {
|
|
12
|
-
super(graphqlGateway);
|
|
13
|
-
this.graphqlGateway = graphqlGateway;
|
|
14
|
-
this.cachedConfig = cache_1.CachedConf.getCache(FORGE_CLI_PACKAGE);
|
|
15
|
-
}
|
|
16
|
-
getCredentialsImpl() {
|
|
17
|
-
return new Promise((resolve, reject) => {
|
|
18
|
-
const credentials = this.cachedConfig.get(CACHE_CREDENTIALS_KEY);
|
|
19
|
-
if (!credentials) {
|
|
20
|
-
return reject(new token_store_1.NoTokenInStoreError());
|
|
21
|
-
}
|
|
22
|
-
resolve(credentials);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
getInstructionsWhenInvalidImpl() {
|
|
26
|
-
return ui_1.Text.error.invalidTokenInKeytarOrCache;
|
|
27
|
-
}
|
|
28
|
-
deleteCredentials() {
|
|
29
|
-
return new Promise((resolve) => {
|
|
30
|
-
this.cachedConfig.delete(CACHE_CREDENTIALS_KEY);
|
|
31
|
-
resolve();
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
setCredentials(credentials) {
|
|
35
|
-
return new Promise((resolve) => {
|
|
36
|
-
this.cachedConfig.set(CACHE_CREDENTIALS_KEY, credentials);
|
|
37
|
-
resolve();
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.CachePersonalApiCredentialsStore = CachePersonalApiCredentialsStore;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { UI } from '../../ui';
|
|
2
|
-
import { AbstractPersonalApiCredentialsGetter } from './abstract-token-store-getter';
|
|
3
|
-
import { PersonalApiCredentialsDeleter, PersonalApiCredentialsSetter, PersonalApiCredentialsValidated } from './token-store';
|
|
4
|
-
export interface Keytar {
|
|
5
|
-
getPassword(service: string, account: string): Promise<string | null>;
|
|
6
|
-
setPassword(service: string, account: string, password: string): Promise<void>;
|
|
7
|
-
deletePassword(service: string, account: string): Promise<void>;
|
|
8
|
-
}
|
|
9
|
-
export declare function getKeytar(ui: UI): Keytar | never;
|
|
10
|
-
export declare const hasKeytar: () => boolean;
|
|
11
|
-
export declare class KeytarPersonalApiCredentialsStore extends AbstractPersonalApiCredentialsGetter implements PersonalApiCredentialsSetter, PersonalApiCredentialsDeleter {
|
|
12
|
-
protected readonly graphqlGateway: string;
|
|
13
|
-
private readonly keytarProvider;
|
|
14
|
-
private keytarAccount;
|
|
15
|
-
constructor(graphqlGateway: string, keytarProvider: () => Keytar);
|
|
16
|
-
private getKeytarAccount;
|
|
17
|
-
getCredentialsImpl(): Promise<PersonalApiCredentialsValidated>;
|
|
18
|
-
getInstructionsWhenInvalidImpl(): string;
|
|
19
|
-
setCredentials(credentials: PersonalApiCredentialsValidated): Promise<void>;
|
|
20
|
-
deleteCredentials(): Promise<void>;
|
|
21
|
-
private wrapKeytarError;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=token-store-keytar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token-store-keytar.d.ts","sourceRoot":"","sources":["../../../src/auth/personal/token-store-keytar.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAG9B,OAAO,EAAE,oCAAoC,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAEL,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAEhC,MAAM,eAAe,CAAC;AAKvB,MAAM,WAAW,MAAM;IACrB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AASD,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,GAAG,KAAK,CAOhD;AAED,eAAO,MAAM,SAAS,QAAO,OAO5B,CAAC;AAGF,qBAAa,iCAAkC,SAAQ,oCACrD,YAAW,4BAA4B,EAAE,6BAA6B;IAI1D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAAE,OAAO,CAAC,QAAQ,CAAC,cAAc;IAHtF,OAAO,CAAC,aAAa,CAAS;gBAGC,cAAc,EAAE,MAAM,EAAmB,cAAc,EAAE,MAAM,MAAM;IAKpG,OAAO,CAAC,gBAAgB;IAQX,kBAAkB,IAAI,OAAO,CAAC,+BAA+B,CAAC;IA4BpE,8BAA8B,IAAI,MAAM;IAIxC,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzC,OAAO,CAAC,eAAe;CAkBxB"}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KeytarPersonalApiCredentialsStore = exports.hasKeytar = exports.getKeytar = void 0;
|
|
4
|
-
const Either_1 = require("fp-ts/lib/Either");
|
|
5
|
-
const shared_1 = require("../../shared");
|
|
6
|
-
const ui_1 = require("../../ui");
|
|
7
|
-
const os_1 = require("os");
|
|
8
|
-
const abstract_token_store_getter_1 = require("./abstract-token-store-getter");
|
|
9
|
-
const token_store_1 = require("./token-store");
|
|
10
|
-
const KEYTAR_SERVICE = 'Atlassian';
|
|
11
|
-
const KEYTAR_ACCOUNT = 'Ecosystem';
|
|
12
|
-
function getKeytar(ui) {
|
|
13
|
-
try {
|
|
14
|
-
return require('keytar');
|
|
15
|
-
}
|
|
16
|
-
catch (_a) {
|
|
17
|
-
const error = new Error(ui_1.Text.error.noKeytar);
|
|
18
|
-
return shared_1.exitOnError(ui)(error);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.getKeytar = getKeytar;
|
|
22
|
-
exports.hasKeytar = () => {
|
|
23
|
-
try {
|
|
24
|
-
require('keytar');
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
catch (_a) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
class KeytarPersonalApiCredentialsStore extends abstract_token_store_getter_1.AbstractPersonalApiCredentialsGetter {
|
|
32
|
-
constructor(graphqlGateway, keytarProvider) {
|
|
33
|
-
super(graphqlGateway);
|
|
34
|
-
this.graphqlGateway = graphqlGateway;
|
|
35
|
-
this.keytarProvider = keytarProvider;
|
|
36
|
-
this.keytarAccount = this.getKeytarAccount(graphqlGateway);
|
|
37
|
-
}
|
|
38
|
-
getKeytarAccount(graphqlGateway) {
|
|
39
|
-
const isStaging = graphqlGateway.includes('.dev.') || graphqlGateway.includes('.stg.');
|
|
40
|
-
if (isStaging) {
|
|
41
|
-
return `${KEYTAR_ACCOUNT}-staging`;
|
|
42
|
-
}
|
|
43
|
-
return KEYTAR_ACCOUNT;
|
|
44
|
-
}
|
|
45
|
-
async getCredentialsImpl() {
|
|
46
|
-
let stringifiedPersonalApiCredentials;
|
|
47
|
-
try {
|
|
48
|
-
stringifiedPersonalApiCredentials = await this.keytarProvider().getPassword(KEYTAR_SERVICE, this.keytarAccount);
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
this.wrapKeytarError(e);
|
|
52
|
-
}
|
|
53
|
-
if (!stringifiedPersonalApiCredentials) {
|
|
54
|
-
throw new token_store_1.NoTokenInStoreError();
|
|
55
|
-
}
|
|
56
|
-
let personalApiCredentials;
|
|
57
|
-
try {
|
|
58
|
-
personalApiCredentials = JSON.parse(stringifiedPersonalApiCredentials);
|
|
59
|
-
}
|
|
60
|
-
catch (_a) {
|
|
61
|
-
throw new token_store_1.NoTokenInStoreError();
|
|
62
|
-
}
|
|
63
|
-
const decodeResult = token_store_1.personalApiCredentialsValidatedShape.decode(personalApiCredentials);
|
|
64
|
-
if (Either_1.isLeft(decodeResult)) {
|
|
65
|
-
throw new token_store_1.NoTokenInStoreError();
|
|
66
|
-
}
|
|
67
|
-
return decodeResult.right;
|
|
68
|
-
}
|
|
69
|
-
getInstructionsWhenInvalidImpl() {
|
|
70
|
-
return ui_1.Text.error.invalidTokenInKeytarOrCache;
|
|
71
|
-
}
|
|
72
|
-
setCredentials(credentials) {
|
|
73
|
-
return this.keytarProvider()
|
|
74
|
-
.setPassword(KEYTAR_SERVICE, this.keytarAccount, JSON.stringify(credentials))
|
|
75
|
-
.catch((e) => this.wrapKeytarError(e));
|
|
76
|
-
}
|
|
77
|
-
deleteCredentials() {
|
|
78
|
-
return this.keytarProvider()
|
|
79
|
-
.deletePassword(KEYTAR_SERVICE, this.keytarAccount)
|
|
80
|
-
.catch((e) => this.wrapKeytarError(e));
|
|
81
|
-
}
|
|
82
|
-
wrapKeytarError(e) {
|
|
83
|
-
let error;
|
|
84
|
-
const currentPlatform = os_1.platform();
|
|
85
|
-
switch (currentPlatform) {
|
|
86
|
-
case 'darwin':
|
|
87
|
-
error = ui_1.Text.error.keytarAccessError.mac(e.message);
|
|
88
|
-
break;
|
|
89
|
-
case 'linux':
|
|
90
|
-
error = ui_1.Text.error.keytarAccessError.linux(e.message);
|
|
91
|
-
break;
|
|
92
|
-
case 'win32':
|
|
93
|
-
error = ui_1.Text.error.keytarAccessError.windows(e.message);
|
|
94
|
-
break;
|
|
95
|
-
default:
|
|
96
|
-
error = ui_1.Text.error.keytarAccessError.other(e.message);
|
|
97
|
-
}
|
|
98
|
-
throw new Error(error);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
exports.KeytarPersonalApiCredentialsStore = KeytarPersonalApiCredentialsStore;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import * as t from 'io-ts';
|
|
2
|
-
export declare const personalApiCredentialsShape: t.TypeC<{
|
|
3
|
-
email: t.StringC;
|
|
4
|
-
token: t.StringC;
|
|
5
|
-
}>;
|
|
6
|
-
export declare const personalApiCredentialsValidatedShape: t.TypeC<{
|
|
7
|
-
email: t.StringC;
|
|
8
|
-
token: t.StringC;
|
|
9
|
-
accountId: t.StringC;
|
|
10
|
-
}>;
|
|
11
|
-
export declare type PersonalApiCredentials = t.TypeOf<typeof personalApiCredentialsShape>;
|
|
12
|
-
export declare type PersonalApiCredentialsValidated = t.TypeOf<typeof personalApiCredentialsValidatedShape>;
|
|
13
|
-
export declare class NoTokenInStoreError extends Error {
|
|
14
|
-
constructor();
|
|
15
|
-
}
|
|
16
|
-
export interface PersonalApiCredentialsGetter {
|
|
17
|
-
getCredentials(): Promise<PersonalApiCredentialsValidated>;
|
|
18
|
-
getInstructionsWhenInvalid(): string;
|
|
19
|
-
}
|
|
20
|
-
export interface PersonalApiCredentialsSetter {
|
|
21
|
-
setCredentials(credentials: PersonalApiCredentialsValidated): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
export interface PersonalApiCredentialsDeleter {
|
|
24
|
-
deleteCredentials(): Promise<void>;
|
|
25
|
-
}
|
|
26
|
-
export interface PersonalApiCredentialsStore extends PersonalApiCredentialsGetter, PersonalApiCredentialsSetter, PersonalApiCredentialsDeleter {
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=token-store.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../../src/auth/personal/token-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAG3B,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;EAI/C,CAAC;AAEH,oBAAY,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAClF,oBAAY,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEpG,qBAAa,mBAAoB,SAAQ,KAAK;;CAI7C;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3D,0BAA0B,IAAI,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,2BACf,SAAQ,4BAA4B,EAClC,4BAA4B,EAC5B,6BAA6B;CAAG"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NoTokenInStoreError = exports.personalApiCredentialsValidatedShape = exports.personalApiCredentialsShape = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const t = tslib_1.__importStar(require("io-ts"));
|
|
6
|
-
const ui_1 = require("../../ui");
|
|
7
|
-
exports.personalApiCredentialsShape = t.type({
|
|
8
|
-
email: t.string,
|
|
9
|
-
token: t.string
|
|
10
|
-
});
|
|
11
|
-
exports.personalApiCredentialsValidatedShape = t.type({
|
|
12
|
-
email: t.string,
|
|
13
|
-
token: t.string,
|
|
14
|
-
accountId: t.string
|
|
15
|
-
});
|
|
16
|
-
class NoTokenInStoreError extends Error {
|
|
17
|
-
constructor() {
|
|
18
|
-
super(ui_1.Text.error.noTokenInKeytarOrCache);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.NoTokenInStoreError = NoTokenInStoreError;
|