@forge/cli-shared 9.10.0-next.1-experimental-65945d2 → 9.10.0-next.10

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,18 +1,69 @@
1
1
  # @forge/cli-shared
2
2
 
3
- ## 9.10.0-next.1-experimental-65945d2
3
+ ## 9.10.0-next.10
4
+
5
+ ### Patch Changes
6
+
7
+ - fdd24a6: Hidden preset command to forge create
8
+
9
+ ## 9.10.0-next.9
4
10
 
5
11
  ### Minor Changes
6
12
 
7
- - e865360: Bump @forge/util with latest aris and dependencies
13
+ - 400465b: Add `--non-interactive` to every command and a `non-interactive` setting (`auto`, `on`, `off`; `FORGE_NON_INTERACTIVE` overrides it). `auto`, the default, turns the mode on when an agent runs the command (no terminal on stdin or stdout). CI (`CI=true`) is left out: pipelines keep today's behaviour unless they pass `--non-interactive` or set `on`. The flag, `on` and `auto` with an agent all give the same mode: commands skip their confirms (including destructive ones such as `forge environments delete`), required options are checked as `--non-interactive` always did (for example `forge install` needs `--site`, `--product` and `--environment`), and a missing one, a missing default environment, or any remaining prompt fails at once with a `MISSING_INPUT` error instead of waiting. A missing analytics choice fails, as `--non-interactive` always has (set it with `forge settings set usage-analytics <value>`). Set `forge settings set non-interactive off` (or `FORGE_NON_INTERACTIVE=off`) to keep prompts for an agent.
14
+
15
+ ## 9.10.0-next.8
16
+
17
+ ### Minor Changes
18
+
19
+ - aabae59: Preparation for the new `forge deploy status` command, which shows the placement deployment status of an app version in an environment
8
20
 
9
21
  ### Patch Changes
10
22
 
11
- - ffd952f: Add an experimental file-backed credential store with restricted macOS, Linux, and Windows permissions.
12
- - Updated dependencies [e865360]
13
- - Updated dependencies [5d8a857]
14
- - @forge/util@3.1.0-next.0-experimental-65945d2
15
- - @forge/manifest@13.8.1-next.0-experimental-65945d2
23
+ - Updated dependencies [aabae59]
24
+ - @forge/util@4.0.0-next.2
25
+
26
+ ## 9.10.0-next.7
27
+
28
+ ### Patch Changes
29
+
30
+ - Updated dependencies [1c49944]
31
+ - @forge/manifest@13.9.0-next.5
32
+
33
+ ## 9.10.0-next.6
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies [da02a8b]
38
+ - @forge/manifest@13.9.0-next.4
39
+
40
+ ## 9.10.0-next.5
41
+
42
+ ### Patch Changes
43
+
44
+ - Updated dependencies [6193c2d]
45
+ - @forge/manifest@13.9.0-next.3
46
+
47
+ ## 9.10.0-next.4
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [3b8f390]
52
+ - @forge/util@4.0.0-next.1
53
+
54
+ ## 9.10.0-next.3
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [9fba45e]
59
+ - @forge/manifest@13.9.0-next.2
60
+
61
+ ## 9.10.0-next.2
62
+
63
+ ### Patch Changes
64
+
65
+ - Updated dependencies [7a4f919]
66
+ - @forge/manifest@13.8.1-next.1
16
67
 
17
68
  ## 9.10.0-next.1
18
69
 
@@ -1 +1 @@
1
- {"version":3,"file":"get-app-owner.d.ts","sourceRoot":"","sources":["../../src/apps/get-app-owner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,oBAAqB,SAAQ,KAAK;;CAI9C;AAED,eAAO,MAAM,aAAa;QAuC83n3G,8CAAc;GA9Bp6n3G,CAAC;AAEH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,iBAAiB;IAGrC,OAAO;;;;;;;;;;;;;YAMN,WAAW;CAe1B"}
1
+ {"version":3,"file":"get-app-owner.d.ts","sourceRoot":"","sources":["../../src/apps/get-app-owner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,YAAY,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,qBAAa,oBAAqB,SAAQ,KAAK;;CAI9C;AAED,eAAO,MAAM,aAAa;QAuCoul9G,8CAAc;GA9B1wl9G,CAAC;AAEH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,iBAAiB;IAGrC,OAAO;;;;;;;;;;;;;YAMN,WAAW;CAe1B"}
@@ -5,7 +5,6 @@ import { Logger } from '../../ui';
5
5
  import { UserRepository } from './user-repository';
6
6
  export declare const EMAIL_KEY = "FORGE_EMAIL";
7
7
  export declare const API_TOKEN_KEY = "FORGE_API_TOKEN";
8
- export declare const FILE_CREDENTIAL_STORE_FLAG = "FORGE_CLI_ENABLE_FILE_CREDENTIAL_STORE";
9
8
  export interface Keytar {
10
9
  getPassword(service: string, account: string): Promise<string | null>;
11
10
  setPassword(service: string, account: string, password: string): Promise<void>;
@@ -30,9 +29,6 @@ export declare class NoKeytarError extends UserError {
30
29
  }
31
30
  export declare class KeytarAccessError extends UserError {
32
31
  }
33
- export declare class CredentialStoreSecurityError extends UserError {
34
- constructor();
35
- }
36
32
  export interface CredentialGetter {
37
33
  getCredentials(): Promise<PersonalApiCredentialsValidated>;
38
34
  }
@@ -40,26 +36,6 @@ export interface CredentialStore extends CredentialGetter {
40
36
  setCredentials(credentials: PersonalApiCredentialsValidated): Promise<void>;
41
37
  deleteCredentials(): Promise<void>;
42
38
  }
43
- export type CredentialStoreCommandRunner = (command: string, args: readonly string[]) => Promise<string>;
44
- export declare function getCredentialsFilePath(currentPlatform?: NodeJS.Platform, environment?: NodeJS.ProcessEnv, userHome?: string): string;
45
- export declare class FileCredentialStore implements CredentialStore {
46
- private readonly userRepository;
47
- private readonly account;
48
- private readonly credentialsFilePath;
49
- private readonly currentPlatform;
50
- private readonly commandRunner;
51
- private windowsUserSid;
52
- constructor(userRepository: UserRepository, account: string, credentialsFilePath?: string, currentPlatform?: NodeJS.Platform, commandRunner?: CredentialStoreCommandRunner);
53
- private getWindowsUserSid;
54
- private applyWindowsAcl;
55
- private secureWindowsStorage;
56
- private securePosixStorage;
57
- private secureStorage;
58
- private readCredentialsFile;
59
- getCredentials(): Promise<PersonalApiCredentialsValidated>;
60
- setCredentials(credentials: PersonalApiCredentialsValidated): Promise<void>;
61
- deleteCredentials(): Promise<void>;
62
- }
63
39
  export declare class CredentialStoreImpl implements CredentialStore {
64
40
  private readonly logger;
65
41
  private readonly instructionsURL;
@@ -1 +1 @@
1
- {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../../src/auth/personal/credential-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../../src/auth/personal/credential-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAuB,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9D,OAAO,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,MAAM,EAAQ,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,SAAS,gBAAgB,CAAC;AACvC,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAa/C,MAAM,WAAW,MAAM;IACrB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEtE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAUD,eAAO,MAAM,2BAA2B;;;EAGtC,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;EAI/C,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAClF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEpG,qBAAa,mBAAoB,SAAQ,SAAS;;CAIjD;AAED,qBAAa,aAAc,SAAQ,SAAS;;CAI3C;AAED,qBAAa,iBAAkB,SAAQ,SAAS;CAAG;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,cAAc,IAAI,OAAO,CAAC,+BAA+B,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,qBAAa,mBAAoB,YAAW,eAAe;IAIvD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPjC,OAAO,CAAC,aAAa,CAAS;gBAGX,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,cAAc;IAKjD,OAAO,CAAC,eAAe;IAoBvB,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,+BAA+B;IAoB9E,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC;IAehG,+BAA+B,IAAI,+BAA+B,GAAG,SAAS;IAS9E,kCAAkC,IAAI,IAAI;IAIpC,cAAc,IAAI,OAAO,CAAC,+BAA+B,CAAC;IAgC1D,cAAc,CAAC,WAAW,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3E,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAWzC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,eAAe,CAKlG"}
@@ -1,14 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CredentialStoreImpl = exports.FileCredentialStore = exports.CredentialStoreSecurityError = exports.KeytarAccessError = exports.NoKeytarError = exports.NoTokenInStoreError = exports.personalApiCredentialsValidatedShape = exports.personalApiCredentialsShape = exports.FILE_CREDENTIAL_STORE_FLAG = exports.API_TOKEN_KEY = exports.EMAIL_KEY = void 0;
4
- exports.getCredentialsFilePath = getCredentialsFilePath;
3
+ exports.CredentialStoreImpl = exports.KeytarAccessError = exports.NoKeytarError = exports.NoTokenInStoreError = exports.personalApiCredentialsValidatedShape = exports.personalApiCredentialsShape = exports.API_TOKEN_KEY = exports.EMAIL_KEY = void 0;
5
4
  exports.getCredentialStore = getCredentialStore;
6
5
  const tslib_1 = require("tslib");
7
- const child_process_1 = require("child_process");
8
- const fs_1 = require("fs");
9
6
  const os_1 = require("os");
10
- const path_1 = tslib_1.__importDefault(require("path"));
11
- const util_1 = require("util");
12
7
  const Either_1 = require("fp-ts/lib/Either");
13
8
  const t = tslib_1.__importStar(require("io-ts"));
14
9
  const cache_1 = require("../../cache");
@@ -18,17 +13,8 @@ const shared_1 = require("../../shared");
18
13
  const ui_1 = require("../../ui");
19
14
  exports.EMAIL_KEY = 'FORGE_EMAIL';
20
15
  exports.API_TOKEN_KEY = 'FORGE_API_TOKEN';
21
- exports.FILE_CREDENTIAL_STORE_FLAG = 'FORGE_CLI_ENABLE_FILE_CREDENTIAL_STORE';
22
16
  const KEYTAR_SERVICE = 'Atlassian';
23
17
  const CACHE_CREDENTIALS_KEY = 'forge-credentials';
24
- const CREDENTIALS_FILE_NAME = 'credentials.json';
25
- const CONFIG_DIRECTORY_SUFFIX = 'nodejs';
26
- const CREDENTIALS_DIRECTORY_MODE = 0o700;
27
- const CREDENTIALS_FILE_MODE = 0o600;
28
- const PERMISSION_BITS_MASK = 0o777;
29
- const GROUP_OR_OTHER_WRITE_BITS_MASK = 0o022;
30
- const WINDOWS_SYSTEM_SID = 'S-1-5-18';
31
- const WINDOWS_ADMINISTRATORS_SID = 'S-1-5-32-544';
32
18
  var KeytarAccount;
33
19
  (function (KeytarAccount) {
34
20
  KeytarAccount["DEV"] = "Ecosystem-staging";
@@ -69,225 +55,6 @@ exports.NoKeytarError = NoKeytarError;
69
55
  class KeytarAccessError extends shared_1.UserError {
70
56
  }
71
57
  exports.KeytarAccessError = KeytarAccessError;
72
- class CredentialStoreSecurityError extends shared_1.UserError {
73
- constructor() {
74
- super(ui_1.Text.error.credentialsFilePermissions);
75
- }
76
- }
77
- exports.CredentialStoreSecurityError = CredentialStoreSecurityError;
78
- const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
79
- const runCredentialStoreCommand = async (command, args) => {
80
- const { stdout } = await execFileAsync(command, [...args], { encoding: 'utf8', windowsHide: true });
81
- return stdout;
82
- };
83
- const credentialsByAccountShape = t.record(t.string, exports.personalApiCredentialsValidatedShape);
84
- function isFileNotFoundError(error) {
85
- return typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT';
86
- }
87
- function getCredentialsFilePath(currentPlatform = (0, os_1.platform)(), environment = process.env, userHome = (0, os_1.homedir)()) {
88
- const platformPath = currentPlatform === 'win32' ? path_1.default.win32 : path_1.default.posix;
89
- let credentialsDirectory;
90
- switch (currentPlatform) {
91
- case 'darwin':
92
- credentialsDirectory = platformPath.join(userHome, 'Library', 'Preferences', `${cache_1.CONFIG_PROJECT_NAME}-${CONFIG_DIRECTORY_SUFFIX}`);
93
- break;
94
- case 'win32':
95
- credentialsDirectory = platformPath.join(environment.LOCALAPPDATA || platformPath.join(userHome, 'AppData', 'Local'), 'Atlassian', 'Forge');
96
- break;
97
- default:
98
- credentialsDirectory = platformPath.join(environment.XDG_CONFIG_HOME || platformPath.join(userHome, '.config'), `${cache_1.CONFIG_PROJECT_NAME}-${CONFIG_DIRECTORY_SUFFIX}`);
99
- }
100
- return platformPath.join(credentialsDirectory, CREDENTIALS_FILE_NAME);
101
- }
102
- class FileCredentialStore {
103
- userRepository;
104
- account;
105
- credentialsFilePath;
106
- currentPlatform;
107
- commandRunner;
108
- windowsUserSid;
109
- constructor(userRepository, account, credentialsFilePath = getCredentialsFilePath(), currentPlatform = (0, os_1.platform)(), commandRunner = runCredentialStoreCommand) {
110
- this.userRepository = userRepository;
111
- this.account = account;
112
- this.credentialsFilePath = credentialsFilePath;
113
- this.currentPlatform = currentPlatform;
114
- this.commandRunner = commandRunner;
115
- }
116
- async getWindowsUserSid() {
117
- this.windowsUserSid ??= this.commandRunner('whoami.exe', ['/user', '/fo', 'csv', '/nh']).then((output) => {
118
- const sid = output.trim().match(/"?(S-\d(?:-\d+)+)"?$/)?.[1];
119
- if (!sid) {
120
- throw new Error('Could not determine the current Windows user SID');
121
- }
122
- return sid;
123
- });
124
- return this.windowsUserSid;
125
- }
126
- async applyWindowsAcl(targetPath, directory) {
127
- const userSid = await this.getWindowsUserSid();
128
- const permission = directory ? '(OI)(CI)F' : 'F';
129
- await this.commandRunner('icacls.exe', [
130
- targetPath,
131
- '/inheritance:r',
132
- '/grant:r',
133
- `*${userSid}:${permission}`,
134
- `*${WINDOWS_SYSTEM_SID}:${permission}`,
135
- `*${WINDOWS_ADMINISTRATORS_SID}:${permission}`
136
- ]);
137
- }
138
- async secureWindowsStorage(createFile) {
139
- let fileExists = true;
140
- try {
141
- await fs_1.promises.access(this.credentialsFilePath);
142
- }
143
- catch (error) {
144
- if (!isFileNotFoundError(error)) {
145
- throw error;
146
- }
147
- fileExists = false;
148
- }
149
- if (!fileExists && !createFile) {
150
- return;
151
- }
152
- const credentialsDirectory = path_1.default.dirname(this.credentialsFilePath);
153
- await fs_1.promises.mkdir(credentialsDirectory, { recursive: true });
154
- await this.applyWindowsAcl(credentialsDirectory, true);
155
- if (!fileExists) {
156
- await fs_1.promises.writeFile(this.credentialsFilePath, '', { flag: 'wx' });
157
- }
158
- await this.applyWindowsAcl(this.credentialsFilePath, false);
159
- }
160
- async securePosixStorage(createFile) {
161
- let fileExists = true;
162
- try {
163
- await fs_1.promises.access(this.credentialsFilePath);
164
- }
165
- catch (error) {
166
- if (!isFileNotFoundError(error)) {
167
- throw error;
168
- }
169
- fileExists = false;
170
- }
171
- if (!fileExists && !createFile) {
172
- return;
173
- }
174
- const credentialsDirectory = path_1.default.dirname(this.credentialsFilePath);
175
- const createdDirectory = await fs_1.promises.mkdir(credentialsDirectory, {
176
- recursive: true,
177
- mode: CREDENTIALS_DIRECTORY_MODE
178
- });
179
- if (createdDirectory !== undefined) {
180
- await fs_1.promises.chmod(credentialsDirectory, CREDENTIALS_DIRECTORY_MODE);
181
- }
182
- const directoryStat = await fs_1.promises.stat(credentialsDirectory);
183
- const currentUserId = process.getuid?.();
184
- if (currentUserId === undefined ||
185
- !directoryStat.isDirectory() ||
186
- directoryStat.uid !== currentUserId ||
187
- (directoryStat.mode & GROUP_OR_OTHER_WRITE_BITS_MASK) !== 0) {
188
- throw new Error('The credentials directory is not owned exclusively by the current user');
189
- }
190
- if (!fileExists) {
191
- const file = await fs_1.promises.open(this.credentialsFilePath, 'wx', CREDENTIALS_FILE_MODE);
192
- await file.close();
193
- }
194
- await fs_1.promises.chmod(this.credentialsFilePath, CREDENTIALS_FILE_MODE);
195
- const fileStat = await fs_1.promises.stat(this.credentialsFilePath);
196
- if (!fileStat.isFile() ||
197
- fileStat.uid !== currentUserId ||
198
- (fileStat.mode & PERMISSION_BITS_MASK) !== CREDENTIALS_FILE_MODE) {
199
- throw new Error('Could not restrict access to the credentials file');
200
- }
201
- }
202
- async secureStorage(createFile) {
203
- try {
204
- if (this.currentPlatform === 'win32') {
205
- await this.secureWindowsStorage(createFile);
206
- }
207
- else {
208
- await this.securePosixStorage(createFile);
209
- }
210
- }
211
- catch {
212
- await fs_1.promises.rm(this.credentialsFilePath, { force: true }).catch(() => undefined);
213
- throw new CredentialStoreSecurityError();
214
- }
215
- }
216
- async readCredentialsFile() {
217
- let contents;
218
- try {
219
- await this.secureStorage(false);
220
- contents = await fs_1.promises.readFile(this.credentialsFilePath, 'utf8');
221
- }
222
- catch (error) {
223
- if (isFileNotFoundError(error)) {
224
- return {};
225
- }
226
- throw error;
227
- }
228
- let parsed;
229
- try {
230
- parsed = JSON.parse(contents);
231
- }
232
- catch {
233
- throw new NoTokenInStoreError();
234
- }
235
- const decodeResult = credentialsByAccountShape.decode(parsed);
236
- if ((0, Either_1.isLeft)(decodeResult)) {
237
- throw new NoTokenInStoreError();
238
- }
239
- return decodeResult.right;
240
- }
241
- async getCredentials() {
242
- if (process.env[exports.API_TOKEN_KEY] && process.env[exports.EMAIL_KEY]) {
243
- const credentials = {
244
- email: process.env[exports.EMAIL_KEY],
245
- token: process.env[exports.API_TOKEN_KEY]
246
- };
247
- const { accountId } = await this.userRepository.getUser(credentials);
248
- return { ...credentials, accountId };
249
- }
250
- const credentials = (await this.readCredentialsFile())[this.account];
251
- if (!credentials) {
252
- throw new NoTokenInStoreError();
253
- }
254
- return credentials;
255
- }
256
- async setCredentials(credentials) {
257
- let credentialsByAccount;
258
- try {
259
- credentialsByAccount = await this.readCredentialsFile();
260
- }
261
- catch (error) {
262
- if (!(error instanceof NoTokenInStoreError)) {
263
- throw error;
264
- }
265
- credentialsByAccount = {};
266
- }
267
- credentialsByAccount[this.account] = credentials;
268
- await this.secureStorage(true);
269
- await fs_1.promises.writeFile(this.credentialsFilePath, `${JSON.stringify(credentialsByAccount, null, 2)}\n`, 'utf8');
270
- await this.secureStorage(false);
271
- }
272
- async deleteCredentials() {
273
- const credentialsByAccount = await this.readCredentialsFile();
274
- delete credentialsByAccount[this.account];
275
- if (Object.keys(credentialsByAccount).length === 0) {
276
- try {
277
- await fs_1.promises.unlink(this.credentialsFilePath);
278
- }
279
- catch (error) {
280
- if (!isFileNotFoundError(error)) {
281
- throw error;
282
- }
283
- }
284
- return;
285
- }
286
- await fs_1.promises.writeFile(this.credentialsFilePath, `${JSON.stringify(credentialsByAccount, null, 2)}\n`, 'utf8');
287
- await this.secureStorage(false);
288
- }
289
- }
290
- exports.FileCredentialStore = FileCredentialStore;
291
58
  class CredentialStoreImpl {
292
59
  logger;
293
60
  instructionsURL;
@@ -417,10 +184,6 @@ class CredentialStoreImpl {
417
184
  }
418
185
  exports.CredentialStoreImpl = CredentialStoreImpl;
419
186
  function getCredentialStore(logger, userRepository) {
420
- const credentialAccount = (0, graphql_1.getEnvironmentConfig)(KeytarAccount);
421
- if (process.env[exports.FILE_CREDENTIAL_STORE_FLAG] === 'true') {
422
- return new FileCredentialStore(userRepository, credentialAccount);
423
- }
424
187
  const keytar = getKeytar();
425
188
  const cachedConfig = cache_1.CachedConf.getCache(cache_1.CONFIG_PROJECT_NAME);
426
189
  const instructionsUrl = (0, instruction_1.getInstructionsUrl)();
@@ -22,6 +22,8 @@ export declare function graphql(source: "\n mutation forge_cli_getDeploymen
22
22
  export declare function graphql(source: "\n mutation forge_cli_processCombinedAppBuild($input: ProcessCombinedAppBuildInput!) {\n processCombinedAppBuild(input: $input) {\n success\n errors {\n message\n extensions {\n errorType\n statusCode\n }\n }\n buildTag\n }\n }\n "): typeof import('./graphql').Forge_Cli_ProcessCombinedAppBuildDocument;
23
23
  export declare function graphql(source: "\n mutation forge_cli_getHostedResourcesUploadUrls($input: CreateHostedResourceUploadUrlInput!) {\n createHostedResourceUploadUrl(input: $input) {\n success\n errors {\n message\n extensions {\n errorType\n statusCode\n }\n }\n preSignedUrls {\n uploadUrl\n uploadFormData\n }\n uploadId\n }\n }\n "): typeof import('./graphql').Forge_Cli_GetHostedResourcesUploadUrlsDocument;
24
24
  export declare function graphql(source: "\n query getAppDeployments($appId: ID!, $interval: IntervalInput!, $first: Int, $after: String) {\n app(id: $appId) {\n deployments(interval: $interval, first: $first, after: $after)\n @optIn(to: [\"xls-deployments-by-interval\", \"xls-deployments-major-version\"]) {\n nodes {\n status\n environmentKey\n buildTag\n majorVersion {\n version\n }\n createdBy {\n accountId\n accountStatus\n name\n }\n createdAt\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n"): typeof import('./graphql').GetAppDeploymentsDocument;
25
+ export declare function graphql(source: "\n query forge_cli_getAppEnvironmentVersionForDeployStatus($appId: ID!, $environmentKey: String!, $majorVersion: Int) {\n app(id: $appId) {\n environmentByKey(key: $environmentKey) {\n id\n type\n versions(first: 1, majorVersion: $majorVersion) {\n nodes {\n id\n version\n }\n }\n }\n }\n }\n"): typeof import('./graphql').Forge_Cli_GetAppEnvironmentVersionForDeployStatusDocument;
26
+ export declare function graphql(source: "\n query forge_cli_getAppVersionPlacements($input: AppVersionPlacementsInput!) {\n appVersionPlacements(input: $input) {\n deploymentArtifact {\n id\n createdAt\n buildTag\n }\n overallStatus\n placementGroups {\n placementType\n status\n total\n succeeded\n inProgress\n failed\n placements {\n placementId\n status\n lastUpdated\n errors {\n step\n }\n }\n }\n }\n }\n"): typeof import('./graphql').Forge_Cli_GetAppVersionPlacementsDocument;
25
27
  export declare function graphql(source: "\n query GetDevSpaceWithLinkingAccess {\n ecosystem {\n devConsole {\n getDeveloperSpaceWithLinkingAccess\n }\n }\n }\n "): typeof import('./graphql').GetDevSpaceWithLinkingAccessDocument;
26
28
  export declare function graphql(source: "\n query GetDevSpaceDetails($devSpaceIds: [String!]!) {\n ecosystem {\n devConsole {\n getDeveloperSpaceDetails(developerSpaceIds: $devSpaceIds) {\n results {\n developerSpaceId\n error {\n message\n }\n details {\n name\n }\n }\n }\n }\n }\n }\n "): typeof import('./graphql').GetDevSpaceDetailsDocument;
27
29
  export declare function graphql(source: "\n mutation CreateDeveloperSpace($input: DevConsoleCreateDeveloperSpaceInput!) {\n ecosystem {\n devConsole {\n createDeveloperSpace(input: $input) {\n devSpace {\n id\n name\n }\n success\n errors {\n message\n extensions {\n statusCode\n errorType\n }\n }\n }\n }\n }\n }\n "): typeof import('./graphql').CreateDeveloperSpaceDocument;
@@ -1 +1 @@
1
- {"version":3,"file":"gql.d.ts","sourceRoot":"","sources":["../../../src/graphql/gql/gql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gql.d.ts","sourceRoot":"","sources":["../../../src/graphql/gql/gql.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,8 @@ const documents = {
28
28
  "\n mutation forge_cli_processCombinedAppBuild($input: ProcessCombinedAppBuildInput!) {\n processCombinedAppBuild(input: $input) {\n success\n errors {\n message\n extensions {\n errorType\n statusCode\n }\n }\n buildTag\n }\n }\n ": types.Forge_Cli_ProcessCombinedAppBuildDocument,
29
29
  "\n mutation forge_cli_getHostedResourcesUploadUrls($input: CreateHostedResourceUploadUrlInput!) {\n createHostedResourceUploadUrl(input: $input) {\n success\n errors {\n message\n extensions {\n errorType\n statusCode\n }\n }\n preSignedUrls {\n uploadUrl\n uploadFormData\n }\n uploadId\n }\n }\n ": types.Forge_Cli_GetHostedResourcesUploadUrlsDocument,
30
30
  "\n query getAppDeployments($appId: ID!, $interval: IntervalInput!, $first: Int, $after: String) {\n app(id: $appId) {\n deployments(interval: $interval, first: $first, after: $after)\n @optIn(to: [\"xls-deployments-by-interval\", \"xls-deployments-major-version\"]) {\n nodes {\n status\n environmentKey\n buildTag\n majorVersion {\n version\n }\n createdBy {\n accountId\n accountStatus\n name\n }\n createdAt\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n": types.GetAppDeploymentsDocument,
31
+ "\n query forge_cli_getAppEnvironmentVersionForDeployStatus($appId: ID!, $environmentKey: String!, $majorVersion: Int) {\n app(id: $appId) {\n environmentByKey(key: $environmentKey) {\n id\n type\n versions(first: 1, majorVersion: $majorVersion) {\n nodes {\n id\n version\n }\n }\n }\n }\n }\n": types.Forge_Cli_GetAppEnvironmentVersionForDeployStatusDocument,
32
+ "\n query forge_cli_getAppVersionPlacements($input: AppVersionPlacementsInput!) {\n appVersionPlacements(input: $input) {\n deploymentArtifact {\n id\n createdAt\n buildTag\n }\n overallStatus\n placementGroups {\n placementType\n status\n total\n succeeded\n inProgress\n failed\n placements {\n placementId\n status\n lastUpdated\n errors {\n step\n }\n }\n }\n }\n }\n": types.Forge_Cli_GetAppVersionPlacementsDocument,
31
33
  "\n query GetDevSpaceWithLinkingAccess {\n ecosystem {\n devConsole {\n getDeveloperSpaceWithLinkingAccess\n }\n }\n }\n ": types.GetDevSpaceWithLinkingAccessDocument,
32
34
  "\n query GetDevSpaceDetails($devSpaceIds: [String!]!) {\n ecosystem {\n devConsole {\n getDeveloperSpaceDetails(developerSpaceIds: $devSpaceIds) {\n results {\n developerSpaceId\n error {\n message\n }\n details {\n name\n }\n }\n }\n }\n }\n }\n ": types.GetDevSpaceDetailsDocument,
33
35
  "\n mutation CreateDeveloperSpace($input: DevConsoleCreateDeveloperSpaceInput!) {\n ecosystem {\n devConsole {\n createDeveloperSpace(input: $input) {\n devSpace {\n id\n name\n }\n success\n errors {\n message\n extensions {\n statusCode\n errorType\n }\n }\n }\n }\n }\n }\n ": types.CreateDeveloperSpaceDocument,