@optimizely/ocp-cli 1.2.1 → 1.2.2

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.
@@ -29,7 +29,7 @@ let AbandonCommand = class AbandonCommand {
29
29
  this.noPrompt = false;
30
30
  }
31
31
  async abandon() {
32
- var _a;
32
+ var _a, _b;
33
33
  (0, handleInterrupt_1.handleInterrupt)();
34
34
  if (!/[\w-]+@\d+\.\d+\.\d+(?:-\w+\.\d+)?/.test(this.appVersion)) {
35
35
  (0, die_1.die)('appVersion is required in the format of app@1.0.0');
@@ -45,29 +45,51 @@ let AbandonCommand = class AbandonCommand {
45
45
  if (primaryAppVersion && primaryAppVersion.manifestJson) {
46
46
  manifest = JSON.parse(primaryAppVersion.manifestJson);
47
47
  }
48
- let shards;
48
+ const appVersionStates = new Map();
49
+ let shards = [];
49
50
  if (manifest && manifest.meta) {
50
51
  shards = await (0, Shards_1.shardsFromManifest)(manifest);
51
52
  }
52
53
  else {
53
- shards = ['us'];
54
+ const allShards = (await Rivendell_1.Rivendell.shards()).map((s) => s.id);
55
+ for (const shard of allShards) {
56
+ try {
57
+ const appVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, shard);
58
+ if (appVersion) {
59
+ appVersionStates.set(shard, appVersion.state);
60
+ shards.push(shard);
61
+ }
62
+ }
63
+ catch (error) {
64
+ if (error instanceof ApiError && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === http2_1.constants.HTTP_STATUS_NOT_FOUND) {
65
+ continue;
66
+ }
67
+ (0, die_1.die)(`Could not locate the appVersion in region: ${shard}, error: ${(0, formatError_1.formatError)(error)}`);
68
+ }
69
+ }
54
70
  }
55
71
  let abandonable = false;
56
- const appVersionStates = new Map();
57
72
  for (const shard of shards) {
58
73
  try {
59
- const appVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, shard);
60
- if (ABANDONABLE_STATES.includes(appVersion.state)) {
74
+ let appVersionState;
75
+ if (appVersionStates.get(shard)) {
76
+ appVersionState = appVersionStates.get(shard);
77
+ }
78
+ else {
79
+ const appVersion = await Rivendell_1.Rivendell.fetchAppVersion({ appId, version }, shard);
80
+ appVersionState = appVersion.state;
81
+ appVersionStates.set(shard, appVersionState);
82
+ }
83
+ if (ABANDONABLE_STATES.includes(appVersionState)) {
61
84
  abandonable = true;
62
85
  }
63
- else if (appVersion.state !== AppVersionState.ABANDONED) {
86
+ else if (appVersionState !== AppVersionState.ABANDONED) {
64
87
  console.error(chalk.red(`AppVersion must be in a abandonable state in all regions. Exiting..`));
65
88
  return;
66
89
  }
67
- appVersionStates.set(shard, appVersion.state);
68
90
  }
69
91
  catch (error) {
70
- if (error instanceof ApiError && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === http2_1.constants.HTTP_STATUS_NOT_FOUND) {
92
+ if (error instanceof ApiError && ((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === http2_1.constants.HTTP_STATUS_NOT_FOUND) {
71
93
  console.error(chalk.red(`Could not locate the appVersion in region: ${shard}.`));
72
94
  if (!await TerminalConfirm_1.TerminalConfirm.ask('Continue with other regions?', this.noPrompt, true)) {
73
95
  (0, die_1.die)('Operation cancelled.');
@@ -101,7 +123,6 @@ let AbandonCommand = class AbandonCommand {
101
123
  continue;
102
124
  }
103
125
  await Rivendell_1.Rivendell.abandon(appId, version, shard);
104
- console.log(chalk.green(`Abandon completed in region ${shard}`));
105
126
  }
106
127
  catch (error) {
107
128
  (0, die_1.die)(`Failed to abandon in region ${shard}, error: ${(0, formatError_1.formatError)(error)}. Exiting...`);
@@ -1 +1 @@
1
- {"version":3,"file":"Abandon.js","sourceRoot":"","sources":["../../../src/commands/app/Abandon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Abandon.js","sourceRoot":"","sources":["../../../src/commands/app/Abandon.ts"],"names":[],"mappings":"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"}
@@ -1356,7 +1356,7 @@
1356
1356
  },
1357
1357
  "commands": [],
1358
1358
  "package": {
1359
- "version": "1.2.1",
1359
+ "version": "1.2.2",
1360
1360
  "name": "@optimizely/ocp-cli",
1361
1361
  "license": "Apache-2.0",
1362
1362
  "executable": "ocp"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimizely/ocp-cli",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Optimizely Connect Platform command line interface",
5
5
  "repository": "https://github.com/ZaiusInc/ocp-cli",
6
6
  "license": "Apache-2.0",
@@ -50,25 +50,45 @@ export class AbandonCommand {
50
50
  if (primaryAppVersion && primaryAppVersion.manifestJson) {
51
51
  manifest = JSON.parse(primaryAppVersion.manifestJson) as AppManifest;
52
52
  }
53
- let shards;
53
+ const appVersionStates = new Map<string, string>();
54
+ let shards = [];
54
55
  if (manifest && manifest.meta) {
55
56
  shards = await shardsFromManifest(manifest);
56
57
  } else {
57
- shards = ['us'];
58
+ const allShards = (await Rivendell.shards()).map((s) => s.id);
59
+ for (const shard of allShards) {
60
+ try {
61
+ const appVersion = await Rivendell.fetchAppVersion({ appId, version }, shard);
62
+ if (appVersion) {
63
+ appVersionStates.set(shard, appVersion.state);
64
+ shards.push(shard);
65
+ }
66
+ } catch (error: any) {
67
+ if (error instanceof ApiError && error.response?.status === httpConstants.HTTP_STATUS_NOT_FOUND) {
68
+ continue;
69
+ }
70
+ die(`Could not locate the appVersion in region: ${shard}, error: ${formatError(error)}`);
71
+ }
72
+ }
58
73
  }
59
74
 
60
75
  let abandonable = false;
61
- const appVersionStates = new Map<string, string>();
62
76
  for (const shard of shards) {
63
77
  try {
64
- const appVersion = await Rivendell.fetchAppVersion({ appId, version }, shard);
65
- if (ABANDONABLE_STATES.includes(appVersion.state as AppVersionState)) {
78
+ let appVersionState;
79
+ if (appVersionStates.get(shard)) {
80
+ appVersionState = appVersionStates.get(shard);
81
+ } else {
82
+ const appVersion = await Rivendell.fetchAppVersion({ appId, version }, shard);
83
+ appVersionState = appVersion.state;
84
+ appVersionStates.set(shard, appVersionState);
85
+ }
86
+ if (ABANDONABLE_STATES.includes(appVersionState as AppVersionState)) {
66
87
  abandonable = true;
67
- } else if (appVersion.state as AppVersionState !== AppVersionState.ABANDONED) {
88
+ } else if (appVersionState as AppVersionState !== AppVersionState.ABANDONED) {
68
89
  console.error(chalk.red(`AppVersion must be in a abandonable state in all regions. Exiting..`));
69
90
  return;
70
91
  }
71
- appVersionStates.set(shard, appVersion.state);
72
92
  } catch (error: any) {
73
93
  if (error instanceof ApiError && error.response?.status === httpConstants.HTTP_STATUS_NOT_FOUND) {
74
94
  console.error(chalk.red(`Could not locate the appVersion in region: ${shard}.`));
@@ -103,7 +123,6 @@ export class AbandonCommand {
103
123
  continue;
104
124
  }
105
125
  await Rivendell.abandon(appId, version, shard);
106
- console.log(chalk.green(`Abandon completed in region ${shard}`));
107
126
  } catch (error: any) {
108
127
  die(`Failed to abandon in region ${shard}, error: ${formatError(error)}. Exiting...`);
109
128
  }