@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 +3 -4
- package/dist/index.js +22 -21
- package/dist/index.mjs +22 -21
- package/package.json +8 -3
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 {
|
|
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
|
|
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:
|
|
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
|
|
85
|
+
var TypedClient = (baseURL, globalOptions) => {
|
|
85
86
|
const axiosInstance = _axios2.default.create();
|
|
86
|
-
logger
|
|
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
|
|
90
|
+
logger.debug("authorizationTokenGenerator is set");
|
|
89
91
|
axiosInstance.interceptors.request.use(async (request) => {
|
|
90
92
|
const url = `${request.baseURL}${request.url}`;
|
|
91
|
-
logger
|
|
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
|
|
100
|
+
logger.debug(`Setting header ${key} to ${value}`);
|
|
99
101
|
request.headers[key] = value;
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
} catch (error) {
|
|
103
|
-
logger
|
|
105
|
+
logger.error(`Error generating token for URL: ${url}`, error);
|
|
104
106
|
throw error;
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
|
-
logger
|
|
108
|
-
logger
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
85
|
+
var TypedClient = (baseURL, globalOptions) => {
|
|
85
86
|
const axiosInstance = axios.create();
|
|
86
|
-
logger
|
|
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
|
|
90
|
+
logger.debug("authorizationTokenGenerator is set");
|
|
89
91
|
axiosInstance.interceptors.request.use(async (request) => {
|
|
90
92
|
const url = `${request.baseURL}${request.url}`;
|
|
91
|
-
logger
|
|
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
|
|
100
|
+
logger.debug(`Setting header ${key} to ${value}`);
|
|
99
101
|
request.headers[key] = value;
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
} catch (error) {
|
|
103
|
-
logger
|
|
105
|
+
logger.error(`Error generating token for URL: ${url}`, error);
|
|
104
106
|
throw error;
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
|
-
logger
|
|
108
|
-
logger
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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 =
|
|
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
|
|
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": "
|
|
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": "
|
|
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
|
}
|