@stepzen/sdk 0.51.0-experimental.d53f92f → 0.51.0-experimental.fcac1cd

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.
@@ -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;;IAsB3B;;;;;;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":"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"}
package/lib/client-v2.js CHANGED
@@ -4,7 +4,7 @@ import deleteCmd from './commands-v2/delete.js';
4
4
  import deployCmd from './commands-v2/deploy.js';
5
5
  import listEndpointsCmd from './commands-v2/list.js';
6
6
  import { generateConfigurationPayload, generateSchemaFilesPayload, } from './shared/payloads.js';
7
- import { parseJwt } from './shared/validation.js';
7
+ import { isValidJWT, parseJwt } from './shared/validation.js';
8
8
  export const ensureValidCredentials = async (auth, sdkConfig) => {
9
9
  let credentials;
10
10
  // use the provided account to initialize an SDK client instance
@@ -24,13 +24,19 @@ export const createSdkClient = async (auth, sdkConfig) => {
24
24
  let credentials;
25
25
  if (auth?.accessToken) {
26
26
  const token = auth.accessToken;
27
- const parsedJWT = await parseJwt(token);
28
- credentials = {
29
- instanceId: parsedJWT.instanceId,
30
- ownerEmail: parsedJWT.email,
31
- accessToken: token,
32
- deploymentType: auth.deploymentType,
33
- };
27
+ const isValid = await isValidJWT(token);
28
+ if (isValid) {
29
+ const parsedJWT = await parseJwt(token);
30
+ credentials = {
31
+ instanceId: parsedJWT.instanceId,
32
+ ownerEmail: parsedJWT.email,
33
+ accessToken: token,
34
+ deploymentType: auth.deploymentType,
35
+ };
36
+ }
37
+ else {
38
+ throw new Error('JWT token is expired. Please login again.');
39
+ }
34
40
  }
35
41
  else {
36
42
  credentials = await ensureValidCredentials(auth, sdkConfig);
@@ -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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"}
@@ -7,7 +7,7 @@ export default async ({ account, adminKey, accessToken, deploymentType, folder,
7
7
  adminKey,
8
8
  accessToken,
9
9
  deploymentType,
10
- query: `mutation DeleteEndpoint($a: String!, $dt: String!, $f: String!, $e: String!, $ak: String!) {
10
+ query: `mutation DeleteEndpoint($a: String, $dt: String!, $f: String!, $e: String!, $ak: String) {
11
11
  removeEndpoint(
12
12
  account: $a
13
13
  deploymentType: $dt
@@ -8,7 +8,7 @@ export default async ({ account, deploymentType, folderName, endpointName, publi
8
8
  accessToken,
9
9
  query: /* GraphQL */ `
10
10
  mutation CreateEndpoint(
11
- $account: String!
11
+ $account: String
12
12
  $deploymentType: String!
13
13
  $folderName: String!
14
14
  $endpointName: String!
@@ -16,7 +16,7 @@ export default async ({ account, deploymentType, folderName, endpointName, publi
16
16
  $endpointType: String!
17
17
  $schemaFiles: SchemaFilesInput!
18
18
  $configuration: Configuration
19
- $adminKey: String!
19
+ $adminKey: String
20
20
  ) {
21
21
  endpoints: addEndpoint(
22
22
  account: $account
@@ -25,9 +25,9 @@ export default async ({ account, deploymentType, adminKey, accessToken, sdkConfi
25
25
  accessToken,
26
26
  query: /* GraphQL */ `
27
27
  query ListEndpoints(
28
- $account: String!
28
+ $account: String
29
29
  $deploymentType: String!
30
- $adminKey: String!
30
+ $adminKey: String
31
31
  $filter: EndpointFilter
32
32
  ) {
33
33
  endpoints: endpointsForAccount(
@@ -4,4 +4,6 @@ export declare const parseJwt: (token: string) => Promise<{
4
4
  instanceId?: string;
5
5
  email?: string;
6
6
  }>;
7
+ /** Validates a JSON Web Token (JWT) by verifying its structure and expiration. */
8
+ export declare const isValidJWT: (token: string) => Promise<boolean>;
7
9
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,wBAAwB,SAAgB,MAAM,GAAG,SAAS,kBA0BtE,CAAA;AAGD,eAAO,MAAM,cAAc,cAAqB,MAAM,GAAG,SAAS,kBAcjE,CAAA;AAGD,eAAO,MAAM,QAAQ,UACZ,MAAM,KACZ,QAAQ;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CA6B/C,CAAA"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,wBAAwB,SAAgB,MAAM,GAAG,SAAS,kBA0BtE,CAAA;AAGD,eAAO,MAAM,cAAc,cAAqB,MAAM,GAAG,SAAS,kBAcjE,CAAA;AAGD,eAAO,MAAM,QAAQ,UACZ,MAAM,KACZ,QAAQ;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CA6B/C,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,UAAU,UAAiB,MAAM,KAAG,QAAQ,OAAO,CAU/D,CAAA"}
@@ -3,6 +3,7 @@ import debug from 'debug';
3
3
  import fs from 'node:fs';
4
4
  import glob from 'glob';
5
5
  import yaml from 'yaml';
6
+ import { decodeJwt } from 'jose';
6
7
  // Validate the Configurationset file
7
8
  export const validateConfigurationset = async (file) => {
8
9
  if (!file) {
@@ -66,4 +67,18 @@ export const parseJwt = async (token) => {
66
67
  return {};
67
68
  }
68
69
  };
70
+ /** Validates a JSON Web Token (JWT) by verifying its structure and expiration. */
71
+ export const isValidJWT = async (token) => {
72
+ try {
73
+ const payload = decodeJwt(token);
74
+ if (!payload.exp)
75
+ return false;
76
+ const currentTime = Math.floor(Date.now() / 1000);
77
+ return payload.exp > currentTime;
78
+ }
79
+ catch (error) {
80
+ console.error('Failed to validate JWT token:', error);
81
+ return false;
82
+ }
83
+ };
69
84
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/shared/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/shared/validation.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.d53f92f",
3
+ "version": "0.51.0-experimental.fcac1cd",
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.d53f92f",
26
- "@stepzen/transpiler": "0.51.0-experimental.d53f92f",
25
+ "@stepzen/fetch": "0.51.0-experimental.fcac1cd",
26
+ "@stepzen/transpiler": "0.51.0-experimental.fcac1cd",
27
27
  "archiver": "^5.3.0",
28
28
  "debug": "^4.3.4",
29
29
  "dotenv": "^16.0.3",
@@ -32,6 +32,7 @@
32
32
  "glob": "^7.2.3",
33
33
  "graphql": "^16.8.1",
34
34
  "is-wsl": "^2.2.0",
35
+ "jose": "^6.0.11",
35
36
  "yaml": "^2.2.2"
36
37
  },
37
38
  "devDependencies": {
@@ -57,5 +58,5 @@
57
58
  "--comment--": "workaround for CVE-2024-21538",
58
59
  "cross-spawn": "^7.0.6"
59
60
  },
60
- "gitHead": "d53f92fd4eba62217e12ccfb2c4db888d5093754"
61
+ "gitHead": "fcac1cdc8681490f72da3d8383f0035faeb21135"
61
62
  }
package/src/client-v2.ts CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  generateSchemaFilesPayload,
10
10
  } from './shared/payloads.js'
11
11
  import {SDKConfigurationV2, StepZenAccountV2} from './shared/types.js'
12
- import {parseJwt} from './shared/validation.js'
12
+ import {isValidJWT, parseJwt} from './shared/validation.js'
13
13
 
14
14
  export const ensureValidCredentials = async (
15
15
  auth: {
@@ -51,12 +51,18 @@ export const createSdkClient = async (
51
51
 
52
52
  if (auth?.accessToken) {
53
53
  const token: string = auth.accessToken
54
- const parsedJWT = await parseJwt(token)
55
- credentials = {
56
- instanceId: parsedJWT.instanceId,
57
- ownerEmail: parsedJWT.email,
58
- accessToken: token,
59
- deploymentType: auth.deploymentType!,
54
+ const isValid = await isValidJWT(token)
55
+ if (isValid) {
56
+ const parsedJWT = await parseJwt(token)
57
+
58
+ credentials = {
59
+ instanceId: parsedJWT.instanceId,
60
+ ownerEmail: parsedJWT.email,
61
+ accessToken: token,
62
+ deploymentType: auth.deploymentType!,
63
+ }
64
+ } else {
65
+ throw new Error('JWT token is expired. Please login again.')
60
66
  }
61
67
  } else {
62
68
  credentials = await ensureValidCredentials(auth, sdkConfig)
@@ -37,7 +37,7 @@ export default async ({
37
37
  adminKey,
38
38
  accessToken,
39
39
  deploymentType,
40
- query: `mutation DeleteEndpoint($a: String!, $dt: String!, $f: String!, $e: String!, $ak: String!) {
40
+ query: `mutation DeleteEndpoint($a: String, $dt: String!, $f: String!, $e: String!, $ak: String) {
41
41
  removeEndpoint(
42
42
  account: $a
43
43
  deploymentType: $dt
@@ -52,7 +52,7 @@ export default async ({
52
52
  accessToken,
53
53
  query: /* GraphQL */ `
54
54
  mutation CreateEndpoint(
55
- $account: String!
55
+ $account: String
56
56
  $deploymentType: String!
57
57
  $folderName: String!
58
58
  $endpointName: String!
@@ -60,7 +60,7 @@ export default async ({
60
60
  $endpointType: String!
61
61
  $schemaFiles: SchemaFilesInput!
62
62
  $configuration: Configuration
63
- $adminKey: String!
63
+ $adminKey: String
64
64
  ) {
65
65
  endpoints: addEndpoint(
66
66
  account: $account
@@ -61,9 +61,9 @@ export default async ({
61
61
  accessToken,
62
62
  query: /* GraphQL */ `
63
63
  query ListEndpoints(
64
- $account: String!
64
+ $account: String
65
65
  $deploymentType: String!
66
- $adminKey: String!
66
+ $adminKey: String
67
67
  $filter: EndpointFilter
68
68
  ) {
69
69
  endpoints: endpointsForAccount(
@@ -4,6 +4,7 @@ import debug from 'debug'
4
4
  import fs from 'node:fs'
5
5
  import glob from 'glob'
6
6
  import yaml from 'yaml'
7
+ import {decodeJwt} from 'jose'
7
8
 
8
9
  // Validate the Configurationset file
9
10
  export const validateConfigurationset = async (file: string | undefined) => {
@@ -84,3 +85,16 @@ export const parseJwt = async (
84
85
  return {}
85
86
  }
86
87
  }
88
+
89
+ /** Validates a JSON Web Token (JWT) by verifying its structure and expiration. */
90
+ export const isValidJWT = async (token: string): Promise<boolean> => {
91
+ try {
92
+ const payload = decodeJwt(token)
93
+ if (!payload.exp) return false
94
+ const currentTime = Math.floor(Date.now() / 1000)
95
+ return payload.exp > currentTime
96
+ } catch (error) {
97
+ console.error('Failed to validate JWT token:', error)
98
+ return false
99
+ }
100
+ }