@stepzen/sdk 0.24.0 → 0.25.0-beta.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/lib/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { SDK } from './init';
2
2
  export * from './init';
3
3
  export * from './init-v2';
4
+ export { fetchGraphQLQuery } from './shared/graphql-client';
4
5
  /**
5
6
  * The default SDK instance that does not know the name of the app using the SDK.
6
7
  * It tries to guess the app name from `process.argv`
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAO,GAAG,EAAC,MAAM,QAAQ,CAAA;AAEhC,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AAEzB;;;;;GAKG;AACH,QAAA,MAAM,OAAO,EAAE,GAIb,CAAA;AAEF,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAO,GAAG,EAAC,MAAM,QAAQ,CAAA;AAEhC,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAA;AAEzD;;;;;GAKG;AACH,QAAA,MAAM,OAAO,EAAE,GAIb,CAAA;AAEF,eAAe,OAAO,CAAA"}
package/lib/index.js CHANGED
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  // Copyright (c) 2020,2021,2022, StepZen, Inc.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.fetchGraphQLQuery = void 0;
4
5
  const tslib_1 = require("tslib");
5
6
  const path = require("path");
6
7
  const init_1 = require("./init");
7
8
  tslib_1.__exportStar(require("./init"), exports);
8
9
  tslib_1.__exportStar(require("./init-v2"), exports);
10
+ var graphql_client_1 = require("./shared/graphql-client");
11
+ Object.defineProperty(exports, "fetchGraphQLQuery", { enumerable: true, get: function () { return graphql_client_1.fetchGraphQLQuery; } });
9
12
  /**
10
13
  * The default SDK instance that does not know the name of the app using the SDK.
11
14
  * It tries to guess the app name from `process.argv`
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C,6BAA4B;AAC5B,iCAAgC;AAEhC,iDAAsB;AACtB,oDAAyB;AAEzB;;;;;GAKG;AACH,MAAM,OAAO,GAAQ,IAAA,WAAI,EAAC;IACxB,wEAAwE;IACxE,6EAA6E;IAC7E,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC,CAAA;AAEF,kBAAe,OAAO,CAAA;AAEtB,6EAA6E;AAC7E,kGAAkG;AAClG,iGAAiG;AACjG,uBAAuB;AACvB,MAAM,CAAC,OAAO,GAAG,EAAC,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,EAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;;AAE9C,6BAA4B;AAC5B,iCAAgC;AAEhC,iDAAsB;AACtB,oDAAyB;AACzB,0DAAyD;AAAjD,mHAAA,iBAAiB,OAAA;AAEzB;;;;;GAKG;AACH,MAAM,OAAO,GAAQ,IAAA,WAAI,EAAC;IACxB,wEAAwE;IACxE,6EAA6E;IAC7E,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC,CAAA;AAEF,kBAAe,OAAO,CAAA;AAEtB,6EAA6E;AAC7E,kGAAkG;AAClG,iGAAiG;AACjG,uBAAuB;AACvB,MAAM,CAAC,OAAO,GAAG,EAAC,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,OAAO,EAAC,CAAA"}
@@ -1,38 +1,32 @@
1
+ import type { ExecutionResult } from 'graphql';
1
2
  import { SDKConfigurationV2 } from './types';
2
- export declare type GraphQLSuccessResponse<T> = {
3
- data: T;
3
+ export declare type GraphQLResponse<TData = Record<string, any>> = GraphQLSuccessResponse<TData> | GraphQLErrorResponse<TData>;
4
+ declare type GraphQLSuccessResponse<TData> = ExecutionResult<TData> & {
5
+ data: TData;
4
6
  errors: undefined;
5
7
  };
6
- export declare type GraphQLErrorResponse<T> = {
7
- data: T | null;
8
- errors: Array<{
9
- message: string;
10
- locations?: Array<{
11
- line: number;
12
- column: number;
13
- }>;
14
- path?: Array<string | number>;
15
- }>;
16
- };
17
- export declare type GraphQLResponse<T> = GraphQLSuccessResponse<T> | GraphQLErrorResponse<T>;
18
- export declare const fetchGraphQLQuery: <T>({ url, query, variables, headers, }: {
8
+ declare type GraphQLErrorResponse<TData> = ExecutionResult<TData> & Required<Pick<ExecutionResult<TData>, 'errors'>>;
9
+ export declare const fetchGraphQLQuery: <T = Record<string, any>>({ url, query, variables, headers, }: {
19
10
  url: URL | string;
20
11
  query: string;
21
- variables: Record<string, any>;
22
- headers: Record<string, any>;
23
- }) => Promise<GraphQLResponse<T>>;
24
- export declare const fetchZenCtlGraphQLQuery: <T>({ account, adminKey, deploymentType, query, variables, sdkConfig, }: {
12
+ variables?: Record<string, any> | undefined;
13
+ headers?: Record<string, any> | undefined;
14
+ }) => Promise<ExecutionResult<T, {
15
+ [key: string]: any;
16
+ }>>;
17
+ export declare const fetchZenCtlGraphQLQuery: <T = Record<string, any>>({ account, adminKey, deploymentType, query, variables, sdkConfig, }: {
25
18
  account: string;
26
19
  adminKey: string;
27
20
  deploymentType: string;
28
21
  query: string;
29
- variables: Record<string, any>;
22
+ variables?: Record<string, any> | undefined;
30
23
  sdkConfig: SDKConfigurationV2;
31
24
  }) => Promise<GraphQLResponse<T>>;
32
- export declare const fetchPublicAccountGraphQLQuery: <T>({ url, query, variables, sdkConfig, }: {
25
+ export declare const fetchPublicAccountGraphQLQuery: <T = Record<string, any>>({ url, query, variables, sdkConfig, }: {
33
26
  url: URL | string;
34
27
  query: string;
35
- variables: Record<string, any>;
28
+ variables?: Record<string, any> | undefined;
36
29
  sdkConfig: SDKConfigurationV2;
37
30
  }) => Promise<GraphQLResponse<T>>;
31
+ export {};
38
32
  //# sourceMappingURL=graphql-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/shared/graphql-client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAG1C,oBAAY,sBAAsB,CAAC,CAAC,IAAI;IACtC,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,oBAAY,oBAAoB,CAAC,CAAC,IAAI;IACpC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IACd,MAAM,EAAE,KAAK,CAAC;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,KAAK,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAC,CAAC,CAAA;QACjD,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;KAC9B,CAAC,CAAA;CACH,CAAA;AAED,oBAAY,eAAe,CAAC,CAAC,IACzB,sBAAsB,CAAC,CAAC,CAAC,GACzB,oBAAoB,CAAC,CAAC,CAAC,CAAA;AAE3B,eAAO,MAAM,iBAAiB;SAMvB,GAAG,GAAG,MAAM;WACV,MAAM;eACF,OAAO,MAAM,EAAE,GAAG,CAAC;aACrB,OAAO,MAAM,EAAE,GAAG,CAAC;iCA6C7B,CAAA;AAED,eAAO,MAAM,uBAAuB;aAQzB,MAAM;cACL,MAAM;oBACA,MAAM;WACf,MAAM;eACF,OAAO,MAAM,EAAE,GAAG,CAAC;eACnB,kBAAkB;iCAe9B,CAAA;AAED,eAAO,MAAM,8BAA8B;SAMpC,GAAG,GAAG,MAAM;WACV,MAAM;eACF,OAAO,MAAM,EAAE,GAAG,CAAC;eACnB,kBAAkB;iCAc9B,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;AAE5C,OAAO,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAA;AAK1C,oBAAY,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACnD,sBAAsB,CAAC,KAAK,CAAC,GAC7B,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAG/B,aAAK,sBAAsB,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG;IAC5D,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAGD,aAAK,oBAAoB,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,GACvD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;AAElD,eAAO,MAAM,iBAAiB;SAMvB,GAAG,GAAG,MAAM;WACV,MAAM;;;;;GA+Cd,CAAA;AAED,eAAO,MAAM,uBAAuB;aAQzB,MAAM;cACL,MAAM;oBACA,MAAM;WACf,MAAM;;eAEF,kBAAkB;iCAe9B,CAAA;AAED,eAAO,MAAM,8BAA8B;SAMpC,GAAG,GAAG,MAAM;WACV,MAAM;;eAEF,kBAAkB;iCAc9B,CAAA"}
@@ -28,12 +28,12 @@ const fetchGraphQLQuery = async ({ url, query, variables = {}, headers = {}, })
28
28
  }
29
29
  const json = await response.json();
30
30
  debug('stepzen:sdk:response')(json);
31
- const { data, errors } = json;
31
+ const { data, errors, extensions } = json;
32
32
  if (errors) {
33
- return { data, errors };
33
+ return { data, errors, extensions };
34
34
  }
35
35
  else if (data) {
36
- return { data, errors: undefined };
36
+ return { data, errors: undefined, extensions };
37
37
  }
38
38
  throw new Error(`Unexpected response structure from the GraphQL endpoint '${url}'` +
39
39
  ` (expected {data, errors}, recieved ${JSON.stringify(json)})`);
@@ -46,7 +46,7 @@ const fetchGraphQLQuery = async ({ url, query, variables = {}, headers = {}, })
46
46
  exports.fetchGraphQLQuery = fetchGraphQLQuery;
47
47
  const fetchZenCtlGraphQLQuery = async ({ account, adminKey, deploymentType, query, variables = {}, sdkConfig, }) => {
48
48
  try {
49
- return await (0, exports.fetchGraphQLQuery)({
49
+ return (await (0, exports.fetchGraphQLQuery)({
50
50
  url: sdkConfig.zenctlApiUrl,
51
51
  query,
52
52
  variables,
@@ -54,7 +54,7 @@ const fetchZenCtlGraphQLQuery = async ({ account, adminKey, deploymentType, quer
54
54
  'user-agent': (0, request_1.getUserAgent)(sdkConfig),
55
55
  host: `stepzen.${deploymentType}.net`,
56
56
  },
57
- });
57
+ }));
58
58
  }
59
59
  catch (error) {
60
60
  throw new Error(`Failed to connect to ZenCtl API. ${error}`);
@@ -63,14 +63,14 @@ const fetchZenCtlGraphQLQuery = async ({ account, adminKey, deploymentType, quer
63
63
  exports.fetchZenCtlGraphQLQuery = fetchZenCtlGraphQLQuery;
64
64
  const fetchPublicAccountGraphQLQuery = async ({ url, query, variables = {}, sdkConfig, }) => {
65
65
  try {
66
- return await (0, exports.fetchGraphQLQuery)({
66
+ return (await (0, exports.fetchGraphQLQuery)({
67
67
  url,
68
68
  query,
69
69
  variables,
70
70
  headers: {
71
71
  'user-agent': (0, request_1.getUserAgent)(sdkConfig),
72
72
  },
73
- });
73
+ }));
74
74
  }
75
75
  catch (error) {
76
76
  throw new Error(`Failed to connect to Public Account API. ${error}`);
@@ -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.24.0",
3
+ "version": "0.25.0-beta.1",
4
4
  "license": "MIT",
5
5
  "author": "Darren Waddell <darren@stepzen.com>",
6
6
  "homepage": "https://stepzen.com",
@@ -22,14 +22,15 @@
22
22
  "posttest": "prettier . --check"
23
23
  },
24
24
  "dependencies": {
25
- "@stepzen/fetch": "^0.24.0",
26
- "@stepzen/transpiler": "^0.24.0",
25
+ "@stepzen/fetch": "^0.25.0-beta.1",
26
+ "@stepzen/transpiler": "^0.25.0-beta.1",
27
27
  "archiver": "^5.3.0",
28
28
  "debug": "^4.3.4",
29
29
  "dotenv": "^16.0.1",
30
30
  "form-data": "^4.0.0",
31
31
  "fs-extra": "^10.0.1",
32
32
  "glob": "^7.2.0",
33
+ "graphql": "^15.8.0",
33
34
  "is-wsl": "^2.2.0",
34
35
  "yaml": "^1.10.2"
35
36
  },
@@ -48,5 +49,5 @@
48
49
  "prettier": "^2.5.1",
49
50
  "ts-node": "^10.8.2"
50
51
  },
51
- "gitHead": "a238c1d7f45de56f9f8fb015347deba058229661"
52
+ "gitHead": "95638ca98959d5ced0be3811acf30d7a91449d1a"
52
53
  }
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ import {init, SDK} from './init'
5
5
 
6
6
  export * from './init'
7
7
  export * from './init-v2'
8
+ export {fetchGraphQLQuery} from './shared/graphql-client'
8
9
 
9
10
  /**
10
11
  * The default SDK instance that does not know the name of the app using the SDK.
@@ -2,29 +2,28 @@
2
2
 
3
3
  import * as debug from 'debug'
4
4
  import fetch from '@stepzen/fetch'
5
+ import type {ExecutionResult} from 'graphql'
5
6
 
6
7
  import {SDKConfigurationV2} from './types'
7
8
  import {getUserAgent} from './request'
8
9
 
9
- export type GraphQLSuccessResponse<T> = {
10
- data: T
11
- errors: undefined
12
- }
10
+ // The StepZen's ZenCtl GraphQL API offers stronger guarantees than defined in
11
+ // the GraphQL standard:
12
+ export type GraphQLResponse<TData = Record<string, any>> =
13
+ | GraphQLSuccessResponse<TData>
14
+ | GraphQLErrorResponse<TData>
13
15
 
14
- export type GraphQLErrorResponse<T> = {
15
- data: T | null
16
- errors: Array<{
17
- message: string
18
- locations?: Array<{line: number; column: number}>
19
- path?: Array<string | number>
20
- }>
16
+ // 1. a successful response would always have a non-null `data` property and no `errors`.
17
+ type GraphQLSuccessResponse<TData> = ExecutionResult<TData> & {
18
+ data: TData
19
+ errors: undefined
21
20
  }
22
21
 
23
- export type GraphQLResponse<T> =
24
- | GraphQLSuccessResponse<T>
25
- | GraphQLErrorResponse<T>
22
+ // 2. an error response would always have a non-null `errors` property.
23
+ type GraphQLErrorResponse<TData> = ExecutionResult<TData> &
24
+ Required<Pick<ExecutionResult<TData>, 'errors'>>
26
25
 
27
- export const fetchGraphQLQuery = async <T>({
26
+ export const fetchGraphQLQuery = async <T = Record<string, any>>({
28
27
  url,
29
28
  query,
30
29
  variables = {},
@@ -32,9 +31,9 @@ export const fetchGraphQLQuery = async <T>({
32
31
  }: {
33
32
  url: URL | string
34
33
  query: string
35
- variables: Record<string, any>
36
- headers: Record<string, any>
37
- }): Promise<GraphQLResponse<T>> => {
34
+ variables?: Record<string, any>
35
+ headers?: Record<string, any>
36
+ }): Promise<ExecutionResult<T>> => {
38
37
  debug('stepzen:sdk:url')(url)
39
38
  debug('stepzen:sdk:headers')(headers)
40
39
  debug('stepzen:sdk:query')(query)
@@ -63,11 +62,11 @@ export const fetchGraphQLQuery = async <T>({
63
62
  const json = await response.json()
64
63
  debug('stepzen:sdk:response')(json)
65
64
 
66
- const {data, errors} = json
65
+ const {data, errors, extensions} = json
67
66
  if (errors) {
68
- return {data, errors}
67
+ return {data, errors, extensions}
69
68
  } else if (data) {
70
- return {data, errors: undefined}
69
+ return {data, errors: undefined, extensions}
71
70
  }
72
71
 
73
72
  throw new Error(
@@ -80,7 +79,7 @@ export const fetchGraphQLQuery = async <T>({
80
79
  }
81
80
  }
82
81
 
83
- export const fetchZenCtlGraphQLQuery = async <T>({
82
+ export const fetchZenCtlGraphQLQuery = async <T = Record<string, any>>({
84
83
  account,
85
84
  adminKey,
86
85
  deploymentType,
@@ -92,11 +91,11 @@ export const fetchZenCtlGraphQLQuery = async <T>({
92
91
  adminKey: string
93
92
  deploymentType: string
94
93
  query: string
95
- variables: Record<string, any>
94
+ variables?: Record<string, any>
96
95
  sdkConfig: SDKConfigurationV2
97
96
  }): Promise<GraphQLResponse<T>> => {
98
97
  try {
99
- return await fetchGraphQLQuery({
98
+ return (await fetchGraphQLQuery({
100
99
  url: sdkConfig.zenctlApiUrl,
101
100
  query,
102
101
  variables,
@@ -104,13 +103,13 @@ export const fetchZenCtlGraphQLQuery = async <T>({
104
103
  'user-agent': getUserAgent(sdkConfig),
105
104
  host: `stepzen.${deploymentType}.net`,
106
105
  },
107
- })
106
+ })) as GraphQLResponse<T>
108
107
  } catch (error) {
109
108
  throw new Error(`Failed to connect to ZenCtl API. ${error}`)
110
109
  }
111
110
  }
112
111
 
113
- export const fetchPublicAccountGraphQLQuery = async <T>({
112
+ export const fetchPublicAccountGraphQLQuery = async <T = Record<string, any>>({
114
113
  url,
115
114
  query,
116
115
  variables = {},
@@ -118,18 +117,18 @@ export const fetchPublicAccountGraphQLQuery = async <T>({
118
117
  }: {
119
118
  url: URL | string
120
119
  query: string
121
- variables: Record<string, any>
120
+ variables?: Record<string, any>
122
121
  sdkConfig: SDKConfigurationV2
123
122
  }): Promise<GraphQLResponse<T>> => {
124
123
  try {
125
- return await fetchGraphQLQuery({
124
+ return (await fetchGraphQLQuery({
126
125
  url,
127
126
  query,
128
127
  variables,
129
128
  headers: {
130
129
  'user-agent': getUserAgent(sdkConfig),
131
130
  },
132
- })
131
+ })) as GraphQLResponse<T>
133
132
  } catch (error) {
134
133
  throw new Error(`Failed to connect to Public Account API. ${error}`)
135
134
  }