@stepzen/sdk 0.24.0 → 0.25.0-experimental.4bdfdfd

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,30 @@
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>;
12
+ variables?: Record<string, any> | undefined;
13
+ headers?: Record<string, any> | undefined;
23
14
  }) => Promise<GraphQLResponse<T>>;
24
- export declare const fetchZenCtlGraphQLQuery: <T>({ account, adminKey, deploymentType, query, variables, sdkConfig, }: {
15
+ export declare const fetchZenCtlGraphQLQuery: <T = Record<string, any>>({ account, adminKey, deploymentType, query, variables, sdkConfig, }: {
25
16
  account: string;
26
17
  adminKey: string;
27
18
  deploymentType: string;
28
19
  query: string;
29
- variables: Record<string, any>;
20
+ variables?: Record<string, any> | undefined;
30
21
  sdkConfig: SDKConfigurationV2;
31
22
  }) => Promise<GraphQLResponse<T>>;
32
- export declare const fetchPublicAccountGraphQLQuery: <T>({ url, query, variables, sdkConfig, }: {
23
+ export declare const fetchPublicAccountGraphQLQuery: <T = Record<string, any>>({ url, query, variables, sdkConfig, }: {
33
24
  url: URL | string;
34
25
  query: string;
35
- variables: Record<string, any>;
26
+ variables?: Record<string, any> | undefined;
36
27
  sdkConfig: SDKConfigurationV2;
37
28
  }) => Promise<GraphQLResponse<T>>;
29
+ export {};
38
30
  //# 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;AAI1C,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;;;iCA+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)})`);
@@ -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":";AAAA,8CAA8C;;;AAE9C,+BAA8B;AAC9B,0CAAkC;AAIlC,uCAAsC;AAiB/B,MAAM,iBAAiB,GAAG,KAAK,EAA2B,EAC/D,GAAG,EACH,KAAK,EACL,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,EAAE,GAMb,EAA+B,EAAE;IAChC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7B,KAAK,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAA;IACrC,KAAK,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAA;IACjC,KAAK,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAA;IAEzC,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,OAAO;aACX;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,SAAS;aACV,CAAC;SACH,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,CAAC,MAAM,EAAE;gBACzC,+BAA+B,GAAG,kBAAkB,CACvD,CAAA;SACF;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAA;QAEnC,MAAM,EAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAA;QACvC,IAAI,MAAM,EAAE;YACV,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAC,CAAA;SAClC;aAAM,IAAI,IAAI,EAAE;YACf,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAC,CAAA;SAC7C;QAED,MAAM,IAAI,KAAK,CACb,4DAA4D,GAAG,GAAG;YAChE,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CACjE,CAAA;KACF;IAAC,OAAO,KAAK,EAAE;QACd,KAAK,CAAC,sBAAsB,CAAC,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;QAC1E,MAAM,KAAK,CAAA;KACZ;AACH,CAAC,CAAA;AAtDY,QAAA,iBAAiB,qBAsD7B;AAEM,MAAM,uBAAuB,GAAG,KAAK,EAA2B,EACrE,OAAO,EACP,QAAQ,EACR,cAAc,EACd,KAAK,EACL,SAAS,GAAG,EAAE,EACd,SAAS,GAQV,EAA+B,EAAE;IAChC,IAAI;QACF,OAAO,MAAM,IAAA,yBAAiB,EAAC;YAC7B,GAAG,EAAE,SAAS,CAAC,YAAY;YAC3B,KAAK;YACL,SAAS;YACT,OAAO,EAAE;gBACP,YAAY,EAAE,IAAA,sBAAY,EAAC,SAAS,CAAC;gBACrC,IAAI,EAAE,WAAW,cAAc,MAAM;aACtC;SACF,CAAC,CAAA;KACH;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAA;KAC7D;AACH,CAAC,CAAA;AA5BY,QAAA,uBAAuB,2BA4BnC;AAEM,MAAM,8BAA8B,GAAG,KAAK,EAA2B,EAC5E,GAAG,EACH,KAAK,EACL,SAAS,GAAG,EAAE,EACd,SAAS,GAMV,EAA+B,EAAE;IAChC,IAAI;QACF,OAAO,MAAM,IAAA,yBAAiB,EAAC;YAC7B,GAAG;YACH,KAAK;YACL,SAAS;YACT,OAAO,EAAE;gBACP,YAAY,EAAE,IAAA,sBAAY,EAAC,SAAS,CAAC;aACtC;SACF,CAAC,CAAA;KACH;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,4CAA4C,KAAK,EAAE,CAAC,CAAA;KACrE;AACH,CAAC,CAAA;AAvBY,QAAA,8BAA8B,kCAuB1C"}
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-experimental.4bdfdfd",
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-experimental.4bdfdfd",
26
+ "@stepzen/transpiler": "^0.25.0-experimental.4bdfdfd",
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": "4bdfdfd2c392f5dc5b7c4b0bbc8a161f304f570a"
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,27 @@
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
+ // StepZen offers stronger assumptions than the `graphql` npm package:
11
+ export type GraphQLResponse<TData = Record<string, any>> =
12
+ | GraphQLSuccessResponse<TData>
13
+ | GraphQLErrorResponse<TData>
13
14
 
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
- }>
15
+ // 1. a successful response would always have a non-null `data` property and no `errors`.
16
+ type GraphQLSuccessResponse<TData> = ExecutionResult<TData> & {
17
+ data: TData
18
+ errors: undefined
21
19
  }
22
20
 
23
- export type GraphQLResponse<T> =
24
- | GraphQLSuccessResponse<T>
25
- | GraphQLErrorResponse<T>
21
+ // 2. an error response would always have a non-null `errors` property.
22
+ type GraphQLErrorResponse<TData> = ExecutionResult<TData> &
23
+ Required<Pick<ExecutionResult<TData>, 'errors'>>
26
24
 
27
- export const fetchGraphQLQuery = async <T>({
25
+ export const fetchGraphQLQuery = async <T = Record<string, any>>({
28
26
  url,
29
27
  query,
30
28
  variables = {},
@@ -32,8 +30,8 @@ export const fetchGraphQLQuery = async <T>({
32
30
  }: {
33
31
  url: URL | string
34
32
  query: string
35
- variables: Record<string, any>
36
- headers: Record<string, any>
33
+ variables?: Record<string, any>
34
+ headers?: Record<string, any>
37
35
  }): Promise<GraphQLResponse<T>> => {
38
36
  debug('stepzen:sdk:url')(url)
39
37
  debug('stepzen:sdk:headers')(headers)
@@ -63,11 +61,11 @@ export const fetchGraphQLQuery = async <T>({
63
61
  const json = await response.json()
64
62
  debug('stepzen:sdk:response')(json)
65
63
 
66
- const {data, errors} = json
64
+ const {data, errors, extensions} = json
67
65
  if (errors) {
68
- return {data, errors}
66
+ return {data, errors, extensions}
69
67
  } else if (data) {
70
- return {data, errors: undefined}
68
+ return {data, errors: undefined, extensions}
71
69
  }
72
70
 
73
71
  throw new Error(
@@ -80,7 +78,7 @@ export const fetchGraphQLQuery = async <T>({
80
78
  }
81
79
  }
82
80
 
83
- export const fetchZenCtlGraphQLQuery = async <T>({
81
+ export const fetchZenCtlGraphQLQuery = async <T = Record<string, any>>({
84
82
  account,
85
83
  adminKey,
86
84
  deploymentType,
@@ -92,7 +90,7 @@ export const fetchZenCtlGraphQLQuery = async <T>({
92
90
  adminKey: string
93
91
  deploymentType: string
94
92
  query: string
95
- variables: Record<string, any>
93
+ variables?: Record<string, any>
96
94
  sdkConfig: SDKConfigurationV2
97
95
  }): Promise<GraphQLResponse<T>> => {
98
96
  try {
@@ -110,7 +108,7 @@ export const fetchZenCtlGraphQLQuery = async <T>({
110
108
  }
111
109
  }
112
110
 
113
- export const fetchPublicAccountGraphQLQuery = async <T>({
111
+ export const fetchPublicAccountGraphQLQuery = async <T = Record<string, any>>({
114
112
  url,
115
113
  query,
116
114
  variables = {},
@@ -118,7 +116,7 @@ export const fetchPublicAccountGraphQLQuery = async <T>({
118
116
  }: {
119
117
  url: URL | string
120
118
  query: string
121
- variables: Record<string, any>
119
+ variables?: Record<string, any>
122
120
  sdkConfig: SDKConfigurationV2
123
121
  }): Promise<GraphQLResponse<T>> => {
124
122
  try {