@sebspark/openapi-client 2.4.2 → 3.0.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/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  export * from '@sebspark/retry';
2
2
  import { BaseClient, ClientOptions, RequestOptions, APIResponse } from '@sebspark/openapi-core';
3
3
  import { AxiosInstance } from 'axios';
4
- import { Logger } from 'winston';
4
+ import { getLogger } from '@sebspark/otel';
5
5
 
6
6
  type TypedAxiosClient<T> = T & {
7
7
  axiosInstance: AxiosInstance;
8
8
  };
9
- declare const TypedClient: <C extends Partial<BaseClient>>(baseURL: string, globalOptions?: ClientOptions, logger?: Logger) => TypedAxiosClient<C>;
9
+ declare const TypedClient: <C extends Partial<BaseClient>>(baseURL: string, globalOptions?: ClientOptions) => TypedAxiosClient<C>;
10
10
 
11
11
  type GatewayGraphqlClient$1 = Pick<BaseClient, 'post' | 'get'> & {
12
12
  post: {
@@ -44,14 +44,13 @@ type GatewayGraphqlClient$1 = Pick<BaseClient, 'post' | 'get'> & {
44
44
  };
45
45
  };
46
46
  type GatewayGraphqlClientArgs = {
47
- logger: Logger;
48
47
  uri: string;
49
48
  apiKey: string;
50
49
  };
51
50
 
52
51
  declare class GatewayGraphqlClient<T extends GatewayGraphqlClient$1 = GatewayGraphqlClient$1> {
53
52
  client: T;
54
- logger: Logger;
53
+ logger: ReturnType<typeof getLogger>;
55
54
  private uri;
56
55
  private options;
57
56
  constructor(args: GatewayGraphqlClientArgs);
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ var _retry = require('@sebspark/retry'); _createStarExport(_retry);
23
23
 
24
24
  // src/client.ts
25
25
  var _openapicore = require('@sebspark/openapi-core');
26
+ var _otel = require('@sebspark/otel');
26
27
 
27
28
  var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);
28
29
  var _axiosauthrefresh = require('axios-auth-refresh'); var _axiosauthrefresh2 = _interopRequireDefault(_axiosauthrefresh);
@@ -81,53 +82,53 @@ var paramsSerializer = (format) => (params) => {
81
82
  };
82
83
 
83
84
  // src/client.ts
84
- var TypedClient = (baseURL, globalOptions, logger) => {
85
+ var TypedClient = (baseURL, globalOptions) => {
85
86
  const axiosInstance = _axios2.default.create();
86
- logger == null ? void 0 : logger.debug("client initialized with arrayFormat", globalOptions == null ? void 0 : globalOptions.arrayFormat);
87
+ const logger = _otel.getLogger.call(void 0, "TypedClient");
88
+ logger.debug(`client initialized with arrayFormat '${globalOptions == null ? void 0 : globalOptions.arrayFormat}'`);
87
89
  if (globalOptions == null ? void 0 : globalOptions.authorizationTokenGenerator) {
88
- logger == null ? void 0 : logger.debug("authorizationTokenGenerator is set");
90
+ logger.debug("authorizationTokenGenerator is set");
89
91
  axiosInstance.interceptors.request.use(async (request) => {
90
92
  const url = `${request.baseURL}${request.url}`;
91
- logger == null ? void 0 : logger.debug(`Intercepting request to ${url}`);
93
+ logger.debug(`Intercepting request to ${url}`);
92
94
  if ((globalOptions == null ? void 0 : globalOptions.authorizationTokenGenerator) && url) {
93
95
  try {
94
96
  const authorizationTokenHeaders = await globalOptions.authorizationTokenGenerator(url);
95
97
  if (authorizationTokenHeaders) {
96
98
  for (const key of Object.keys(authorizationTokenHeaders)) {
97
99
  const value = authorizationTokenHeaders[key];
98
- logger == null ? void 0 : logger.debug(`Setting header ${key} to ${value}`);
100
+ logger.debug(`Setting header ${key} to ${value}`);
99
101
  request.headers[key] = value;
100
102
  }
101
103
  }
102
104
  } catch (error) {
103
- logger == null ? void 0 : logger.error(`Error generating token for URL: ${url}`);
105
+ logger.error(`Error generating token for URL: ${url}`, error);
104
106
  throw error;
105
107
  }
106
108
  }
107
- logger == null ? void 0 : logger.debug("Intercepted request:");
108
- logger == null ? void 0 : logger.debug(JSON.stringify(request, null, 2));
109
+ logger.debug("Intercepted request:");
110
+ logger.debug(JSON.stringify(request, null, 2));
109
111
  return request;
110
112
  });
111
113
  }
112
114
  if (globalOptions == null ? void 0 : globalOptions.authorizationTokenRefresh) {
113
115
  const refreshAuthLogic = async (failedRequest) => {
114
116
  var _a, _b;
115
- logger == null ? void 0 : logger.debug("Failed request");
116
- logger == null ? void 0 : logger.debug(JSON.stringify(failedRequest, null, 2));
117
117
  if (!_axios2.default.isAxiosError(failedRequest)) {
118
- logger == null ? void 0 : logger.error("Failed request is not an axios error");
118
+ logger.error("Failed request is not an axios error", failedRequest);
119
119
  return;
120
+ } else {
121
+ logger.debug("Failed request", failedRequest);
120
122
  }
121
123
  const axiosError = failedRequest;
122
- logger == null ? void 0 : logger.debug("Failed request config:");
123
- logger == null ? void 0 : logger.debug(JSON.stringify(axiosError.config, null, 2));
124
+ logger.debug("Failed request config", axiosError.config);
124
125
  const url = `${(_a = axiosError.config) == null ? void 0 : _a.baseURL}${(_b = axiosError.config) == null ? void 0 : _b.url}`;
125
126
  if ((globalOptions == null ? void 0 : globalOptions.authorizationTokenRefresh) && url) {
126
- logger == null ? void 0 : logger.debug(`Refreshing token for URL ${url}`);
127
+ logger.debug(`Refreshing token for URL ${url}`);
127
128
  try {
128
129
  await (globalOptions == null ? void 0 : globalOptions.authorizationTokenRefresh(url));
129
130
  } catch (error) {
130
- logger == null ? void 0 : logger.error(`Error refreshing token for URL: ${url}`);
131
+ logger.error(`Error refreshing token for URL: ${url}`, error);
131
132
  throw error;
132
133
  }
133
134
  }
@@ -141,7 +142,7 @@ var TypedClient = (baseURL, globalOptions, logger) => {
141
142
  params: request.params,
142
143
  headers: request.headers
143
144
  };
144
- logger.debug(JSON.stringify(requestObject, null, 2));
145
+ logger.debug("request", requestObject);
145
146
  return request;
146
147
  });
147
148
  axiosInstance.interceptors.response.use((response) => {
@@ -150,7 +151,7 @@ var TypedClient = (baseURL, globalOptions, logger) => {
150
151
  config: response.config,
151
152
  headers: response.headers
152
153
  };
153
- logger.debug(JSON.stringify(responseObject, null, 2));
154
+ logger.debug("response", responseObject);
154
155
  return response;
155
156
  });
156
157
  }
@@ -167,8 +168,7 @@ var callServer = async (axiosInstance, args, logger) => {
167
168
  var _a, _b;
168
169
  try {
169
170
  const serializer = paramsSerializer(args.arrayFormat);
170
- logger == null ? void 0 : logger.debug(`[callServer] typeof serializer: ${typeof serializer}`);
171
- logger == null ? void 0 : logger.debug(`[callServer] sample serialization: ${serializer({test: ["a", "b"]})}`);
171
+ logger.debug(`[callServer] typeof serializer: ${typeof serializer}`);
172
172
  const body = ((_a = args.method) == null ? void 0 : _a.toLowerCase()) === "get" || ((_b = args.method) == null ? void 0 : _b.toLowerCase()) === "delete" ? void 0 : args.body;
173
173
  const {headers, data} = await _retry.retry.call(void 0, () => axiosInstance.request({
174
174
  baseURL: args.baseUrl,
@@ -214,10 +214,11 @@ var setParams = (url, params = {}) => Object.entries(params).reduce((url2, [key,
214
214
 
215
215
 
216
216
  var _openapiauthiam = require('@sebspark/openapi-auth-iam');
217
+
217
218
  var GatewayGraphqlClient = class {
218
219
  constructor(args) {
219
220
  this.uri = args.uri;
220
- this.logger = args.logger;
221
+ this.logger = _otel.getLogger.call(void 0, "GatewayGraphqlClient");
221
222
  this.options = {
222
223
  timeout: 10 * 1e3,
223
224
  authorizationTokenGenerator: async (url) => {
@@ -229,7 +230,7 @@ var GatewayGraphqlClient = class {
229
230
  return _openapiauthiam.apiGatewayTokenRefresh.call(void 0, )(url);
230
231
  }
231
232
  };
232
- this.client = TypedClient(args.uri, this.options, this.logger);
233
+ this.client = TypedClient(args.uri, this.options);
233
234
  }
234
235
  async graphql(query, variables) {
235
236
  try {
package/dist/index.mjs CHANGED
@@ -23,6 +23,7 @@ export * from "@sebspark/retry";
23
23
 
24
24
  // src/client.ts
25
25
  import {fromAxiosError} from "@sebspark/openapi-core";
26
+ import {getLogger} from "@sebspark/otel";
26
27
  import {retry} from "@sebspark/retry";
27
28
  import axios from "axios";
28
29
  import createAuthRefreshInterceptor from "axios-auth-refresh";
@@ -81,53 +82,53 @@ var paramsSerializer = (format) => (params) => {
81
82
  };
82
83
 
83
84
  // src/client.ts
84
- var TypedClient = (baseURL, globalOptions, logger) => {
85
+ var TypedClient = (baseURL, globalOptions) => {
85
86
  const axiosInstance = axios.create();
86
- logger == null ? void 0 : logger.debug("client initialized with arrayFormat", globalOptions == null ? void 0 : globalOptions.arrayFormat);
87
+ const logger = getLogger("TypedClient");
88
+ logger.debug(`client initialized with arrayFormat '${globalOptions == null ? void 0 : globalOptions.arrayFormat}'`);
87
89
  if (globalOptions == null ? void 0 : globalOptions.authorizationTokenGenerator) {
88
- logger == null ? void 0 : logger.debug("authorizationTokenGenerator is set");
90
+ logger.debug("authorizationTokenGenerator is set");
89
91
  axiosInstance.interceptors.request.use(async (request) => {
90
92
  const url = `${request.baseURL}${request.url}`;
91
- logger == null ? void 0 : logger.debug(`Intercepting request to ${url}`);
93
+ logger.debug(`Intercepting request to ${url}`);
92
94
  if ((globalOptions == null ? void 0 : globalOptions.authorizationTokenGenerator) && url) {
93
95
  try {
94
96
  const authorizationTokenHeaders = await globalOptions.authorizationTokenGenerator(url);
95
97
  if (authorizationTokenHeaders) {
96
98
  for (const key of Object.keys(authorizationTokenHeaders)) {
97
99
  const value = authorizationTokenHeaders[key];
98
- logger == null ? void 0 : logger.debug(`Setting header ${key} to ${value}`);
100
+ logger.debug(`Setting header ${key} to ${value}`);
99
101
  request.headers[key] = value;
100
102
  }
101
103
  }
102
104
  } catch (error) {
103
- logger == null ? void 0 : logger.error(`Error generating token for URL: ${url}`);
105
+ logger.error(`Error generating token for URL: ${url}`, error);
104
106
  throw error;
105
107
  }
106
108
  }
107
- logger == null ? void 0 : logger.debug("Intercepted request:");
108
- logger == null ? void 0 : logger.debug(JSON.stringify(request, null, 2));
109
+ logger.debug("Intercepted request:");
110
+ logger.debug(JSON.stringify(request, null, 2));
109
111
  return request;
110
112
  });
111
113
  }
112
114
  if (globalOptions == null ? void 0 : globalOptions.authorizationTokenRefresh) {
113
115
  const refreshAuthLogic = async (failedRequest) => {
114
116
  var _a, _b;
115
- logger == null ? void 0 : logger.debug("Failed request");
116
- logger == null ? void 0 : logger.debug(JSON.stringify(failedRequest, null, 2));
117
117
  if (!axios.isAxiosError(failedRequest)) {
118
- logger == null ? void 0 : logger.error("Failed request is not an axios error");
118
+ logger.error("Failed request is not an axios error", failedRequest);
119
119
  return;
120
+ } else {
121
+ logger.debug("Failed request", failedRequest);
120
122
  }
121
123
  const axiosError = failedRequest;
122
- logger == null ? void 0 : logger.debug("Failed request config:");
123
- logger == null ? void 0 : logger.debug(JSON.stringify(axiosError.config, null, 2));
124
+ logger.debug("Failed request config", axiosError.config);
124
125
  const url = `${(_a = axiosError.config) == null ? void 0 : _a.baseURL}${(_b = axiosError.config) == null ? void 0 : _b.url}`;
125
126
  if ((globalOptions == null ? void 0 : globalOptions.authorizationTokenRefresh) && url) {
126
- logger == null ? void 0 : logger.debug(`Refreshing token for URL ${url}`);
127
+ logger.debug(`Refreshing token for URL ${url}`);
127
128
  try {
128
129
  await (globalOptions == null ? void 0 : globalOptions.authorizationTokenRefresh(url));
129
130
  } catch (error) {
130
- logger == null ? void 0 : logger.error(`Error refreshing token for URL: ${url}`);
131
+ logger.error(`Error refreshing token for URL: ${url}`, error);
131
132
  throw error;
132
133
  }
133
134
  }
@@ -141,7 +142,7 @@ var TypedClient = (baseURL, globalOptions, logger) => {
141
142
  params: request.params,
142
143
  headers: request.headers
143
144
  };
144
- logger.debug(JSON.stringify(requestObject, null, 2));
145
+ logger.debug("request", requestObject);
145
146
  return request;
146
147
  });
147
148
  axiosInstance.interceptors.response.use((response) => {
@@ -150,7 +151,7 @@ var TypedClient = (baseURL, globalOptions, logger) => {
150
151
  config: response.config,
151
152
  headers: response.headers
152
153
  };
153
- logger.debug(JSON.stringify(responseObject, null, 2));
154
+ logger.debug("response", responseObject);
154
155
  return response;
155
156
  });
156
157
  }
@@ -167,8 +168,7 @@ var callServer = async (axiosInstance, args, logger) => {
167
168
  var _a, _b;
168
169
  try {
169
170
  const serializer = paramsSerializer(args.arrayFormat);
170
- logger == null ? void 0 : logger.debug(`[callServer] typeof serializer: ${typeof serializer}`);
171
- logger == null ? void 0 : logger.debug(`[callServer] sample serialization: ${serializer({test: ["a", "b"]})}`);
171
+ logger.debug(`[callServer] typeof serializer: ${typeof serializer}`);
172
172
  const body = ((_a = args.method) == null ? void 0 : _a.toLowerCase()) === "get" || ((_b = args.method) == null ? void 0 : _b.toLowerCase()) === "delete" ? void 0 : args.body;
173
173
  const {headers, data} = await retry(() => axiosInstance.request({
174
174
  baseURL: args.baseUrl,
@@ -214,10 +214,11 @@ import {
214
214
  apiGatewayTokenByUrlGenerator,
215
215
  apiGatewayTokenRefresh
216
216
  } from "@sebspark/openapi-auth-iam";
217
+ import {getLogger as getLogger2} from "@sebspark/otel";
217
218
  var GatewayGraphqlClient = class {
218
219
  constructor(args) {
219
220
  this.uri = args.uri;
220
- this.logger = args.logger;
221
+ this.logger = getLogger2("GatewayGraphqlClient");
221
222
  this.options = {
222
223
  timeout: 10 * 1e3,
223
224
  authorizationTokenGenerator: async (url) => {
@@ -229,7 +230,7 @@ var GatewayGraphqlClient = class {
229
230
  return apiGatewayTokenRefresh()(url);
230
231
  }
231
232
  };
232
- this.client = TypedClient(args.uri, this.options, this.logger);
233
+ this.client = TypedClient(args.uri, this.options);
233
234
  }
234
235
  async graphql(query, variables) {
235
236
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sebspark/openapi-client",
3
- "version": "2.4.2",
3
+ "version": "3.0.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -19,10 +19,12 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@sebspark/openapi-typegen": "*",
22
+ "@sebspark/otel": "*",
23
+ "@sebspark/tsconfig": "*",
24
+ "express": "5.1.0",
22
25
  "nock": "14.0.10",
23
- "tsconfig": "*",
24
26
  "tsup-node": "^0.1.0",
25
- "vitest": "3.2.4"
27
+ "vitest": "4.0.3"
26
28
  },
27
29
  "dependencies": {
28
30
  "@sebspark/openapi-auth-iam": "*",
@@ -30,5 +32,8 @@
30
32
  "@sebspark/retry": "*",
31
33
  "axios": "^1.12.2",
32
34
  "axios-auth-refresh": "3.3.6"
35
+ },
36
+ "peerDependencies": {
37
+ "@sebspark/otel": ">=1.1.4"
33
38
  }
34
39
  }