@stepzen/sdk 0.51.0-experimental.52c9496 → 0.51.0-experimental.555a09d

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.
@@ -52,5 +52,15 @@ export declare const createSdkClient: (auth: {
52
52
  name?: string | undefined;
53
53
  }) => Promise<import("./shared/types.js").ZenCtlResponseV2<import("./shared/types.js").StepZenEndpointV2[]>>;
54
54
  };
55
+ fetchAccountDetails: (fetchAdminKey?: boolean, fetachApiKey?: boolean) => Promise<{
56
+ errors: {
57
+ message: string;
58
+ }[] | undefined;
59
+ data: {
60
+ account: string;
61
+ adminkey?: string | undefined;
62
+ apikeysAsJsonArray?: string | undefined;
63
+ } | undefined;
64
+ }>;
55
65
  }>;
56
66
  //# sourceMappingURL=client-v2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-v2.d.ts","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAA;AAGtE,eAAO,MAAM,sBAAsB,SAC3B;IACJ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,aACU,kBAAkB,8BAmB9B,CAAA;AAED,eAAO,MAAM,eAAe,SACpB;IACJ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,aACU,kBAAkB;;IA4B3B;;;;;;OAMG;;gBACqC,MAAM;cAAQ,MAAM;;IAW5D;;;;;;;;;;;OAWG;;gBAQO,MAAM;cACR,MAAM;mBACD,MAAM;;;;;QAmBjB;;;;WAIG;;;;;;EAkBR,CAAA"}
1
+ {"version":3,"file":"client-v2.d.ts","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAA;AAGtE,eAAO,MAAM,sBAAsB,SAC3B;IACJ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,aACU,kBAAkB,8BAmB9B,CAAA;AAED,eAAO,MAAM,eAAe,SACpB;IACJ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,aACU,kBAAkB;;IA8B3B;;;;;;OAMG;;gBACqC,MAAM;cAAQ,MAAM;;IAW5D;;;;;;;;;;;OAWG;;gBAQO,MAAM;cACR,MAAM;mBACD,MAAM;;;;;QAmBjB;;;;WAIG;;;;;;0CAiBa,OAAO,iBACR,OAAO;;;;;;;;;;EAU3B,CAAA"}
package/lib/client-v2.js CHANGED
@@ -2,6 +2,7 @@
2
2
  import accountCmd from './commands-v2/account.js';
3
3
  import deleteCmd from './commands-v2/delete.js';
4
4
  import deployCmd from './commands-v2/deploy.js';
5
+ import fetchAccountDetailCmd from './commands-v2/fetch-account.js';
5
6
  import listEndpointsCmd from './commands-v2/list.js';
6
7
  import { generateConfigurationPayload, generateSchemaFilesPayload, } from './shared/payloads.js';
7
8
  import { isValidJWT, parseJwt } from './shared/validation.js';
@@ -38,9 +39,12 @@ export const createSdkClient = async (auth, sdkConfig) => {
38
39
  throw new Error('JWT token is expired. Please login again.');
39
40
  }
40
41
  }
41
- else {
42
+ else if (auth.adminKey) {
42
43
  credentials = await ensureValidCredentials(auth, sdkConfig);
43
44
  }
45
+ else {
46
+ throw new Error('adminKey or accesstoken should be provided!');
47
+ }
44
48
  return {
45
49
  get credentials() {
46
50
  // always return a copy to avoid accidential modification by the caller
@@ -98,7 +102,6 @@ export const createSdkClient = async (auth, sdkConfig) => {
98
102
  * @returns list of deployed endpoints
99
103
  */
100
104
  endpoints: async ({ folder, name, } = {}) => {
101
- const header = [{ Authorization: `Bearer ${credentials.accessToken}` }];
102
105
  return listEndpointsCmd({
103
106
  account: credentials.account,
104
107
  adminKey: credentials.adminKey,
@@ -110,6 +113,14 @@ export const createSdkClient = async (auth, sdkConfig) => {
110
113
  });
111
114
  },
112
115
  },
116
+ fetchAccountDetails: async (fetchAdminKey, fetachApiKey) => {
117
+ return fetchAccountDetailCmd({
118
+ accessToken: credentials.accessToken,
119
+ sdkConfig,
120
+ fetchAdminKey: fetchAdminKey || false,
121
+ fetachApiKey: fetachApiKey || false,
122
+ });
123
+ },
113
124
  };
114
125
  };
115
126
  //# sourceMappingURL=client-v2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-v2.js","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-v2.js","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { SDKConfigurationV2 } from '../shared/types.js';
2
+ declare const _default: ({ accessToken, sdkConfig, fetchAdminKey, fetachApiKey, }: {
3
+ accessToken: string;
4
+ sdkConfig: SDKConfigurationV2;
5
+ fetchAdminKey: boolean;
6
+ fetachApiKey: boolean;
7
+ }) => Promise<{
8
+ errors: {
9
+ message: string;
10
+ }[] | undefined;
11
+ data: {
12
+ account: string;
13
+ adminkey?: string;
14
+ apikeysAsJsonArray?: string;
15
+ } | undefined;
16
+ }>;
17
+ export default _default;
18
+ //# sourceMappingURL=fetch-account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-account.d.ts","sourceRoot":"","sources":["../../src/commands-v2/fetch-account.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAA;;iBAStC,MAAM;eACR,kBAAkB;mBACd,OAAO;kBACR,OAAO;;YAEb;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,EAAE,GAAG,SAAS;UAEnC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAC,GACjE,SAAS;;AAdf,wBAqDC"}
@@ -0,0 +1,33 @@
1
+ // Copyright IBM Corp. 2020, 2025
2
+ import { fetchZenCtlGraphQLQuery } from '../shared/graphql-client.js';
3
+ export default async ({ accessToken, sdkConfig, fetchAdminKey = false, fetachApiKey = false, }) => {
4
+ const fields = ['account: account_name'];
5
+ if (fetchAdminKey) {
6
+ fields.push('adminkey: key_value_admin');
7
+ }
8
+ if (fetachApiKey) {
9
+ fields.push('apikeysAsJsonArray: key_value_apikeys');
10
+ }
11
+ const query = `query RecoverAccountForToken {
12
+ recoverAccount {
13
+ ${fields.join(' ')}
14
+ }
15
+ }`;
16
+ const { data, errors } = await fetchZenCtlGraphQLQuery({
17
+ accessToken,
18
+ query,
19
+ sdkConfig,
20
+ });
21
+ if (errors) {
22
+ const message = errors.map(({ message }) => message).join('\n');
23
+ return {
24
+ data: undefined,
25
+ errors: [{ message }],
26
+ };
27
+ }
28
+ return {
29
+ errors,
30
+ data: data?.recoverAccount,
31
+ };
32
+ };
33
+ //# sourceMappingURL=fetch-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-account.js","sourceRoot":"","sources":["../../src/commands-v2/fetch-account.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAGjC,OAAO,EAAC,uBAAuB,EAAC,MAAM,6BAA6B,CAAA;AAEnE,eAAe,KAAK,EAAE,EACpB,WAAW,EACX,SAAS,EACT,aAAa,GAAG,KAAK,EACrB,YAAY,GAAG,KAAK,GAMrB,EAKE,EAAE;IACH,MAAM,MAAM,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACxC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IAC1C,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,KAAK,GAAG;;QAER,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;;IAEpB,CAAA;IAEF,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,MAAM,uBAAuB,CAMjD;QACD,WAAW;QACX,KAAK;QACL,SAAS;KACV,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7D,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,CAAC,EAAC,OAAO,EAAC,CAAC;SACpB,CAAA;IACH,CAAC;IACD,OAAO;QACL,MAAM;QACN,IAAI,EAAE,IAAI,EAAE,cAAc;KAC3B,CAAA;AACH,CAAC,CAAA"}
package/lib/init-v2.d.ts CHANGED
@@ -25,6 +25,16 @@ export declare const initV2: (sdkConfig: SDKConfigurationV2) => {
25
25
  name?: string | undefined;
26
26
  }) => Promise<import("./shared/types.js").ZenCtlResponseV2<import("./shared/types.js").StepZenEndpointV2[]>>;
27
27
  };
28
+ fetchAccountDetails: (fetchAdminKey?: boolean | undefined, fetachApiKey?: boolean | undefined) => Promise<{
29
+ errors: {
30
+ message: string;
31
+ }[] | undefined;
32
+ data: {
33
+ account: string;
34
+ adminkey?: string | undefined;
35
+ apikeysAsJsonArray?: string | undefined;
36
+ } | undefined;
37
+ }>;
28
38
  }>;
29
39
  readonly userAgent: string;
30
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"init-v2.d.ts","sourceRoot":"","sources":["../src/init-v2.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,MAAM,cAAe,kBAAkB;sBAGrC,MAAM,YACL,MAAM,kBACA,MAAM;oBAehB;QACJ,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB;;;;;;;;;;;;;;;;;;;;;CAQN,CAAA;AAGD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEzD,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;AAC7C,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"init-v2.d.ts","sourceRoot":"","sources":["../src/init-v2.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAA;AAEpD,eAAO,MAAM,MAAM,cAAe,kBAAkB;sBAGrC,MAAM,YACL,MAAM,kBACA,MAAM;oBAehB;QACJ,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQN,CAAA;AAGD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEzD,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;AAC7C,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/shared/graphql-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAA;AAK7C,MAAM,MAAM,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACnD,sBAAsB,CAAC,KAAK,CAAC,GAC7B,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAG/B,KAAK,sBAAsB,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG;IAC7E,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAGD,KAAK,oBAAoB,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GACxE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEnE,eAAO,MAAM,iBAAiB;SAOvB,GAAG,GAAG,MAAM;WACV,MAAM;;;;kDAkEd,CAAA;AAED,eAAO,MAAM,uBAAuB;;;;;WAa3B,MAAM;;eAEF,kBAAkB;iCAqB9B,CAAA"}
1
+ {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/shared/graphql-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAA;AAK7C,MAAM,MAAM,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACnD,sBAAsB,CAAC,KAAK,CAAC,GAC7B,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAG/B,KAAK,sBAAsB,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG;IAC7E,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAGD,KAAK,oBAAoB,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,GACxE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEnE,eAAO,MAAM,iBAAiB;SAOvB,GAAG,GAAG,MAAM;WACV,MAAM;;;;kDAwEd,CAAA;AAED,eAAO,MAAM,uBAAuB;;;;;WAa3B,MAAM;;eAEF,kBAAkB;iCAqB9B,CAAA"}
@@ -27,8 +27,13 @@ export const fetchGraphQLQuery = async ({ url, query, variables = {}, operationN
27
27
  });
28
28
  const endTime = Date.now();
29
29
  if (response.status !== 200) {
30
- throw new Error(`Unexpected HTTP status ${response.status}` +
31
- ` from the GraphQL endpoint '${url}' (expected 200)`);
30
+ if (response.status === 401 && response.statusText === 'Unauthorized') {
31
+ throw new Error('Action denied: You are not authorized to perform this action');
32
+ }
33
+ else {
34
+ throw new Error(`Unexpected HTTP status ${response.status}` +
35
+ ` from the GraphQL endpoint '${url}' (expected 200)`);
36
+ }
32
37
  }
33
38
  const json = await response.json();
34
39
  debug('stepzen:sdk:response')(JSON.stringify(json));
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-client.js","sourceRoot":"","sources":["../../src/shared/graphql-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql-client.js","sourceRoot":"","sources":["../../src/shared/graphql-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stepzen/sdk",
3
- "version": "0.51.0-experimental.52c9496",
3
+ "version": "0.51.0-experimental.555a09d",
4
4
  "license": "MIT",
5
5
  "author": "Darren Waddell <darren@stepzen.com>",
6
6
  "homepage": "https://stepzen.com",
@@ -22,8 +22,8 @@
22
22
  "posttest": "prettier . --check"
23
23
  },
24
24
  "dependencies": {
25
- "@stepzen/fetch": "0.51.0-experimental.52c9496",
26
- "@stepzen/transpiler": "0.51.0-experimental.52c9496",
25
+ "@stepzen/fetch": "0.51.0-experimental.555a09d",
26
+ "@stepzen/transpiler": "0.51.0-experimental.555a09d",
27
27
  "archiver": "^5.3.0",
28
28
  "debug": "^4.3.4",
29
29
  "dotenv": "^16.0.3",
@@ -58,5 +58,5 @@
58
58
  "--comment--": "workaround for CVE-2024-21538",
59
59
  "cross-spawn": "^7.0.6"
60
60
  },
61
- "gitHead": "52c949647089f63f2daf470a7668af533321aed7"
61
+ "gitHead": "555a09d99d76dc984434a4860b84c43bd704e4a3"
62
62
  }
package/src/client-v2.ts CHANGED
@@ -3,6 +3,7 @@
3
3
  import accountCmd from './commands-v2/account.js'
4
4
  import deleteCmd from './commands-v2/delete.js'
5
5
  import deployCmd from './commands-v2/deploy.js'
6
+ import fetchAccountDetailCmd from './commands-v2/fetch-account.js'
6
7
  import listEndpointsCmd from './commands-v2/list.js'
7
8
  import {
8
9
  generateConfigurationPayload,
@@ -64,8 +65,10 @@ export const createSdkClient = async (
64
65
  } else {
65
66
  throw new Error('JWT token is expired. Please login again.')
66
67
  }
67
- } else {
68
+ } else if (auth.adminKey) {
68
69
  credentials = await ensureValidCredentials(auth, sdkConfig)
70
+ } else {
71
+ throw new Error('adminKey or accesstoken should be provided!')
69
72
  }
70
73
 
71
74
  return {
@@ -140,7 +143,6 @@ export const createSdkClient = async (
140
143
  folder,
141
144
  name,
142
145
  }: {folder?: string; name?: string} = {}) => {
143
- const header = [{Authorization: `Bearer ${credentials.accessToken}`}]
144
146
  return listEndpointsCmd({
145
147
  account: credentials.account,
146
148
  adminKey: credentials.adminKey,
@@ -152,5 +154,16 @@ export const createSdkClient = async (
152
154
  })
153
155
  },
154
156
  },
157
+ fetchAccountDetails: async (
158
+ fetchAdminKey?: boolean,
159
+ fetachApiKey?: boolean,
160
+ ) => {
161
+ return fetchAccountDetailCmd({
162
+ accessToken: credentials.accessToken!,
163
+ sdkConfig,
164
+ fetchAdminKey: fetchAdminKey || false,
165
+ fetachApiKey: fetachApiKey || false,
166
+ })
167
+ },
155
168
  }
156
169
  }
@@ -0,0 +1,59 @@
1
+ // Copyright IBM Corp. 2020, 2025
2
+
3
+ import {SDKConfigurationV2} from '../shared/types.js'
4
+ import {fetchZenCtlGraphQLQuery} from '../shared/graphql-client.js'
5
+
6
+ export default async ({
7
+ accessToken,
8
+ sdkConfig,
9
+ fetchAdminKey = false,
10
+ fetachApiKey = false,
11
+ }: {
12
+ accessToken: string
13
+ sdkConfig: SDKConfigurationV2
14
+ fetchAdminKey: boolean
15
+ fetachApiKey: boolean
16
+ }): Promise<{
17
+ errors: {message: string}[] | undefined
18
+ data:
19
+ | {account: string; adminkey?: string; apikeysAsJsonArray?: string}
20
+ | undefined
21
+ }> => {
22
+ const fields = ['account: account_name']
23
+ if (fetchAdminKey) {
24
+ fields.push('adminkey: key_value_admin')
25
+ }
26
+ if (fetachApiKey) {
27
+ fields.push('apikeysAsJsonArray: key_value_apikeys')
28
+ }
29
+
30
+ const query = `query RecoverAccountForToken {
31
+ recoverAccount {
32
+ ${fields.join(' ')}
33
+ }
34
+ }`
35
+
36
+ const {data, errors} = await fetchZenCtlGraphQLQuery<{
37
+ recoverAccount: {
38
+ account: string
39
+ adminkey?: string
40
+ apikeysAsJsonArray?: string
41
+ }
42
+ }>({
43
+ accessToken,
44
+ query,
45
+ sdkConfig,
46
+ })
47
+
48
+ if (errors) {
49
+ const message = errors.map(({message}) => message).join('\n')
50
+ return {
51
+ data: undefined,
52
+ errors: [{message}],
53
+ }
54
+ }
55
+ return {
56
+ errors,
57
+ data: data?.recoverAccount,
58
+ }
59
+ }
@@ -63,10 +63,16 @@ export const fetchGraphQLQuery = async <T = Record<string, any>>({
63
63
  })
64
64
  const endTime = Date.now()
65
65
  if (response.status !== 200) {
66
- throw new Error(
67
- `Unexpected HTTP status ${response.status}` +
68
- ` from the GraphQL endpoint '${url}' (expected 200)`,
69
- )
66
+ if (response.status === 401 && response.statusText === 'Unauthorized') {
67
+ throw new Error(
68
+ 'Action denied: You are not authorized to perform this action',
69
+ )
70
+ } else {
71
+ throw new Error(
72
+ `Unexpected HTTP status ${response.status}` +
73
+ ` from the GraphQL endpoint '${url}' (expected 200)`,
74
+ )
75
+ }
70
76
  }
71
77
 
72
78
  const json = await response.json()