@sinch/sdk-client 1.3.0 → 1.4.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/README.md +69 -20
- package/dist/api/api-client-options.d.ts +1 -1
- package/dist/api/api-client.d.ts +16 -5
- package/dist/api/api-client.js +14 -5
- package/dist/api/api-client.js.map +1 -1
- package/dist/api/api-interface.d.ts +1 -4
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/client/api-client-helpers.d.ts +6 -2
- package/dist/client/api-client-helpers.js +11 -24
- package/dist/client/api-client-helpers.js.map +1 -1
- package/dist/client/api-client-pagination-helper.js +34 -3
- package/dist/client/api-client-pagination-helper.js.map +1 -1
- package/dist/client/api-fetch-client.d.ts +4 -1
- package/dist/client/api-fetch-client.js +26 -5
- package/dist/client/api-fetch-client.js.map +1 -1
- package/dist/domain/domain-helper.d.ts +2 -1
- package/dist/domain/domain-helper.js +3 -2
- package/dist/domain/domain-helper.js.map +1 -1
- package/dist/domain/domain-interface.d.ts +7 -2
- package/dist/domain/domain-interface.js +2 -0
- package/dist/domain/domain-interface.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model/index.d.ts +1 -0
- package/dist/model/index.js +3 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/withAdditionalProperties.d.ts +3 -0
- package/dist/model/withAdditionalProperties.js +3 -0
- package/dist/model/withAdditionalProperties.js.map +1 -0
- package/dist/plugins/oauth2/oauth2-token.request.d.ts +9 -1
- package/dist/plugins/oauth2/oauth2-token.request.js +71 -26
- package/dist/plugins/oauth2/oauth2-token.request.js.map +1 -1
- package/dist/utils/authorization.helper.js +0 -34
- package/dist/utils/authorization.helper.js.map +1 -1
- package/dist/utils/date.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,32 +32,82 @@ yarn add @sinch/sdk-client
|
|
|
32
32
|
|
|
33
33
|
## Usage
|
|
34
34
|
|
|
35
|
+
### Lazy Initialization and Dependency Injection of ApiFetchClient
|
|
36
|
+
Starting from version 1.4.0, the SDK supports lazy initialization and dependency injection of the ApiFetchClient in service classes.
|
|
37
|
+
|
|
38
|
+
How it works:
|
|
39
|
+
- Lazy Initialization:
|
|
40
|
+
The ApiFetchClient is not created until the first API call is made. This reduces startup overhead and only initializes what is needed.
|
|
41
|
+
- Dependency Injection:
|
|
42
|
+
The service class (e.g., NumbersService) is responsible for creating and configuring the ApiFetchClient. This client is then injected into the API classes as needed, centralizing configuration and enabling advanced scenarios like custom plugins or test mocks.
|
|
43
|
+
|
|
44
|
+
Example:
|
|
45
|
+
```typescript
|
|
46
|
+
const numbersService = new NumbersService({
|
|
47
|
+
projectId: 'YOUR_PROJECT_ID',
|
|
48
|
+
keyId: 'YOUR_KEY_ID',
|
|
49
|
+
keySecret: 'YOUR_KEY_SECRET',
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// No need to instantiate ApiFetchClient manually
|
|
53
|
+
|
|
54
|
+
// The client is created and injected automatically on the first API call
|
|
55
|
+
const numbers = await numbersService.list({});
|
|
56
|
+
|
|
57
|
+
// You can update configuration before the first call
|
|
58
|
+
numbersService.setHostname('https://custom.api.sinch.com');
|
|
59
|
+
numbersService.setCredentials({ projectId: 'NEW_PROJECT_ID' });
|
|
60
|
+
```
|
|
61
|
+
|
|
35
62
|
In this section, we'll see how to implement the `Api` interface and how to use the `ApiFetchClient` to call the API endpoint.
|
|
36
63
|
|
|
37
64
|
### Api interface
|
|
38
65
|
|
|
39
66
|
```typescript
|
|
40
|
-
export class
|
|
41
|
-
|
|
42
|
-
|
|
67
|
+
export class LazyDomainApiClient {
|
|
68
|
+
private apiFetchClient?: ApiFetchClient;
|
|
69
|
+
constructor(public sharedConfig: SinchClientParameters) {}
|
|
43
70
|
|
|
44
|
-
|
|
45
|
-
|
|
71
|
+
public getApiClient(): ApiFetchClient {
|
|
72
|
+
if (!this.apiFetchClient) {
|
|
73
|
+
// Create the ApiFetchClient only when it's needed
|
|
46
74
|
}
|
|
75
|
+
return this.apiFetchClient;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
47
78
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
79
|
+
export class ExampleDomainApi implements Api {
|
|
80
|
+
constructor(
|
|
81
|
+
public readonly lazyClient: LazyDomainApiClient,
|
|
82
|
+
public readonly apiName: string,
|
|
83
|
+
) {}
|
|
84
|
+
|
|
85
|
+
public get client(): ApiClient {
|
|
86
|
+
return this.lazyClient.getApiClient();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
export class MyExampleApi extends ExampleDomainApi {
|
|
92
|
+
|
|
93
|
+
constructor(lazyApiClient: LazyDomainApiClient) {
|
|
94
|
+
super(lazyApiClient, 'MyExampleApi');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
public async myApiOperation(): Promise<Response> {
|
|
98
|
+
// Define the API endpoint
|
|
99
|
+
const url = `${this.client.apiClientOptions.hostname}/myDomain`;
|
|
100
|
+
// Build the request options: you can use the method 'prepareOptions' from the apiClient
|
|
101
|
+
// that will apply the request plugins onto the default built options
|
|
102
|
+
const requestOptions: RequestOptions = await this.client.prepareOptions(...);
|
|
103
|
+
// Send the request and apply the response plugins
|
|
104
|
+
return this.client.processCall<Response>({
|
|
105
|
+
url,
|
|
106
|
+
requestOptions,
|
|
107
|
+
apiName: this.apiName,
|
|
108
|
+
operationId: 'myApiOperation',
|
|
109
|
+
});
|
|
110
|
+
}
|
|
61
111
|
}
|
|
62
112
|
```
|
|
63
113
|
|
|
@@ -81,13 +131,12 @@ const apiClient = new ApiFetchClient(apiClientOptions);
|
|
|
81
131
|
|
|
82
132
|
```typescript
|
|
83
133
|
// Once the API Client is intantiated, it can be given as a parameter to your API
|
|
84
|
-
const myApi = new MyExampleApi(
|
|
134
|
+
const myApi = new MyExampleApi(lazyApiClient);
|
|
85
135
|
|
|
86
136
|
// The API operations can now be invoked
|
|
87
137
|
const myResponse = await myApi.myApiOperation();
|
|
88
138
|
```
|
|
89
139
|
|
|
90
|
-
|
|
91
140
|
## Plugins
|
|
92
141
|
|
|
93
142
|
### Request plugins
|
|
@@ -3,7 +3,7 @@ import { ResponsePlugin } from '../plugins/core/response-plugin';
|
|
|
3
3
|
interface BaseApiClientOptions {
|
|
4
4
|
/**
|
|
5
5
|
* ID of the umbrella project containing the access keys
|
|
6
|
-
* Found on your
|
|
6
|
+
* Found on your [Sinch Customer Dashboard](https://dashboard.sinch.com/settings/project-management).
|
|
7
7
|
*/
|
|
8
8
|
projectId: string;
|
|
9
9
|
/** Hostname of the API server */
|
package/dist/api/api-client.d.ts
CHANGED
|
@@ -54,13 +54,18 @@ export interface FileBuffer {
|
|
|
54
54
|
/** File content as Buffer */
|
|
55
55
|
buffer: Buffer;
|
|
56
56
|
}
|
|
57
|
+
export interface CSVFile {
|
|
58
|
+
/** Name of the file extracted from the 'content-disposition' header */
|
|
59
|
+
fileName: string;
|
|
60
|
+
/** File content as string */
|
|
61
|
+
data: string;
|
|
62
|
+
}
|
|
57
63
|
/**
|
|
58
64
|
* API Client used to call the server
|
|
59
65
|
*/
|
|
60
66
|
export declare class ApiClient {
|
|
61
|
-
/** Options for the API */
|
|
62
67
|
apiClientOptions: ApiClientOptions;
|
|
63
|
-
constructor(
|
|
68
|
+
constructor(apiClientOptions: ApiClientOptions);
|
|
64
69
|
/**
|
|
65
70
|
* Returns a map containing the query parameters based on the provided data and names.
|
|
66
71
|
*
|
|
@@ -125,11 +130,17 @@ export declare class ApiClient {
|
|
|
125
130
|
*/
|
|
126
131
|
processCallWithPagination<T>(_httpCallParameters: ApiCallParametersWithPagination): Promise<PageResult<T>>;
|
|
127
132
|
/**
|
|
128
|
-
* Process HTTP call to download a PDF file
|
|
133
|
+
* Process HTTP call to download a PDF file as file buffer
|
|
129
134
|
* @abstract
|
|
130
|
-
* @template T
|
|
131
135
|
* @param {ApiCallParameters} _httpCallParameters - Parameters for the HTTP call.
|
|
132
|
-
* @return {Promise<
|
|
136
|
+
* @return {Promise<FileBuffer>} A promise that resolves to the result of the HTTP call.
|
|
133
137
|
*/
|
|
134
138
|
processFileCall(_httpCallParameters: ApiCallParameters): Promise<FileBuffer>;
|
|
139
|
+
/**
|
|
140
|
+
* Process HTTP call to download a CSV file as plain text
|
|
141
|
+
* @abstract
|
|
142
|
+
* @param {ApiCallParameters} _httpCallParameters - Parameters for the HTTP call.
|
|
143
|
+
* @return {Promise<CSVFile>} A promise that resolves to the result of the HTTP call.
|
|
144
|
+
*/
|
|
145
|
+
processCsvCall(_httpCallParameters: ApiCallParameters): Promise<CSVFile>;
|
|
135
146
|
}
|
package/dist/api/api-client.js
CHANGED
|
@@ -20,7 +20,8 @@ var PaginationEnum;
|
|
|
20
20
|
* API Client used to call the server
|
|
21
21
|
*/
|
|
22
22
|
class ApiClient {
|
|
23
|
-
constructor(
|
|
23
|
+
constructor(apiClientOptions) {
|
|
24
|
+
this.apiClientOptions = apiClientOptions;
|
|
24
25
|
/**
|
|
25
26
|
*
|
|
26
27
|
* @param {string} name - The parameter name
|
|
@@ -42,7 +43,6 @@ class ApiClient {
|
|
|
42
43
|
return `${name}=${parameterValue}`;
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
|
-
this.apiClientOptions = options;
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
48
|
* Returns a map containing the query parameters based on the provided data and names.
|
|
@@ -130,16 +130,25 @@ class ApiClient {
|
|
|
130
130
|
throw new Error('Abstract method must be implemented');
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
|
-
* Process HTTP call to download a PDF file
|
|
133
|
+
* Process HTTP call to download a PDF file as file buffer
|
|
134
134
|
* @abstract
|
|
135
|
-
* @template T
|
|
136
135
|
* @param {ApiCallParameters} _httpCallParameters - Parameters for the HTTP call.
|
|
137
|
-
* @return {Promise<
|
|
136
|
+
* @return {Promise<FileBuffer>} A promise that resolves to the result of the HTTP call.
|
|
138
137
|
*/
|
|
139
138
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
140
139
|
processFileCall(_httpCallParameters) {
|
|
141
140
|
throw new Error('Abstract method must be implemented');
|
|
142
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Process HTTP call to download a CSV file as plain text
|
|
144
|
+
* @abstract
|
|
145
|
+
* @param {ApiCallParameters} _httpCallParameters - Parameters for the HTTP call.
|
|
146
|
+
* @return {Promise<CSVFile>} A promise that resolves to the result of the HTTP call.
|
|
147
|
+
*/
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
149
|
+
processCsvCall(_httpCallParameters) {
|
|
150
|
+
throw new Error('Abstract method must be implemented');
|
|
151
|
+
}
|
|
143
152
|
}
|
|
144
153
|
exports.ApiClient = ApiClient;
|
|
145
154
|
// ----- INTERNAL ------ \\
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/api/api-client.ts"],"names":[],"mappings":";;;AAEA,2CAAqC;AAErC,IAAY,cAYX;AAZD,WAAY,cAAc;IACxB,mDAAI,CAAA;IACJ,8BAA8B;IAC9B,qDAAK,CAAA;IACL,mCAAmC;IACnC,uDAAM,CAAA;IACN,0BAA0B;IAC1B,mDAAI,CAAA;IACJ,2CAA2C;IAC3C,qDAAK,CAAA;IACL,0BAA0B;IAC1B,qDAAK,CAAA;AACP,CAAC,EAZW,cAAc,8BAAd,cAAc,QAYzB;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/api/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { ApiClientOptions, } from './api-client-options';
|
|
2
2
|
export { buildOAuth2ApiClientOptions, buildMailgunApiClientOptions, buildApplicationSignedApiClientOptions, buildFlexibleOAuth2OrApiTokenApiClientOptions, } from './api-client-options-helper';
|
|
3
|
-
export { ApiClient, ApiListPromise, FileBuffer, PageResult, PaginatedApiProperties, PaginationEnum, } from './api-client';
|
|
3
|
+
export { ApiClient, ApiListPromise, CSVFile, FileBuffer, PageResult, PaginatedApiProperties, PaginationEnum, } from './api-client';
|
|
4
4
|
export { GenericError, RequestFailedError, EmptyResponseError, ResponseJSONParseError, } from './api-errors';
|
|
5
5
|
export { Api, } from './api-interface';
|
|
6
6
|
export { CallbackProcessor, } from './callback-webhooks-interface';
|
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAGA,yEAKqC;AAJnC,wIAAA,2BAA2B,OAAA;AAC3B,yIAAA,4BAA4B,OAAA;AAC5B,mJAAA,sCAAsC,OAAA;AACtC,0JAAA,6CAA6C,OAAA;AAE/C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAGA,yEAKqC;AAJnC,wIAAA,2BAA2B,OAAA;AAC3B,yIAAA,4BAA4B,OAAA;AAC5B,mJAAA,sCAAsC,OAAA;AACtC,0JAAA,6CAA6C,OAAA;AAE/C,2CAQsB;AAPpB,uGAAA,SAAS,OAAA;AAMT,4GAAA,cAAc,OAAA;AAEhB,2CAKsB;AAJpB,0GAAA,YAAY,OAAA;AACZ,gHAAA,kBAAkB,OAAA;AAClB,gHAAA,kBAAkB,OAAA;AAClB,oHAAA,sBAAsB,OAAA"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { RequestOptions, RequestPlugin } from '../plugins/core/request-plugin';
|
|
2
2
|
import { ApiCallParameters, ApiCallParametersWithPagination } from '../api/api-client';
|
|
3
3
|
import { ErrorContext } from '../api/api-errors';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Clear the cached JWT (race-safely — only if the cache still holds the
|
|
6
|
+
* failing one) and re-run the OAuth2 plugin to obtain a fresh token, returning
|
|
7
|
+
* updated request options for a single retry.
|
|
8
|
+
*/
|
|
9
|
+
export declare const manageExpiredToken: (apiCallParameters: ApiCallParameters | ApiCallParametersWithPagination, errorContext: ErrorContext, requestPlugins: RequestPlugin[] | undefined, failingJwt?: string) => Promise<RequestOptions>;
|
|
5
10
|
export declare function buildErrorContext(apiCallParameters: ApiCallParameters): ErrorContext;
|
|
6
|
-
export declare function invalidateAndRegenerateJwt(requestPlugins: RequestPlugin[] | undefined, options: RequestOptions, errorContext: ErrorContext): Promise<RequestOptions>;
|
|
7
11
|
/**
|
|
8
12
|
* Go through all an object's properties and transform to date the values that match the right format
|
|
9
13
|
* @param {any} input - the response object after all the response plugins have been run
|
|
@@ -2,22 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.reviveDates = exports.manageExpiredToken = void 0;
|
|
4
4
|
exports.buildErrorContext = buildErrorContext;
|
|
5
|
-
exports.invalidateAndRegenerateJwt = invalidateAndRegenerateJwt;
|
|
6
5
|
const request_plugin_1 = require("../plugins/core/request-plugin");
|
|
7
6
|
const api_errors_1 = require("../api/api-errors");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
throw new api_errors_1.GenericError('Tried to generate a new JWT with no success', errorContext);
|
|
18
|
-
}
|
|
7
|
+
/**
|
|
8
|
+
* Clear the cached JWT (race-safely — only if the cache still holds the
|
|
9
|
+
* failing one) and re-run the OAuth2 plugin to obtain a fresh token, returning
|
|
10
|
+
* updated request options for a single retry.
|
|
11
|
+
*/
|
|
12
|
+
const manageExpiredToken = async (apiCallParameters, errorContext, requestPlugins, failingJwt) => {
|
|
13
|
+
const oauth2Plugin = requestPlugins?.find((plugin) => plugin.getName() === request_plugin_1.RequestPluginEnum.OAUTH2_TOKEN_REQUEST);
|
|
14
|
+
if (!oauth2Plugin) {
|
|
15
|
+
throw new api_errors_1.GenericError('Trying to clear an expired JWT from the cache while the Oauth2Token plugin is not registered to the API client', errorContext);
|
|
19
16
|
}
|
|
20
|
-
|
|
17
|
+
oauth2Plugin.clearCachedToken(failingJwt);
|
|
18
|
+
return oauth2Plugin.load().transform(apiCallParameters.requestOptions);
|
|
21
19
|
};
|
|
22
20
|
exports.manageExpiredToken = manageExpiredToken;
|
|
23
21
|
function buildErrorContext(apiCallParameters) {
|
|
@@ -27,17 +25,6 @@ function buildErrorContext(apiCallParameters) {
|
|
|
27
25
|
url: apiCallParameters.url,
|
|
28
26
|
};
|
|
29
27
|
}
|
|
30
|
-
async function invalidateAndRegenerateJwt(requestPlugins, options, errorContext) {
|
|
31
|
-
const oauth2Plugin = requestPlugins?.find((plugin) => plugin.getName() === request_plugin_1.RequestPluginEnum.OAUTH2_TOKEN_REQUEST);
|
|
32
|
-
if (oauth2Plugin) {
|
|
33
|
-
oauth2Plugin.invalidateToken();
|
|
34
|
-
return oauth2Plugin.load().transform(options);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
const errorMessage = 'Trying to invalidate an expired JWT while the Oauth2Token plugin is not registered to the API client';
|
|
38
|
-
throw new api_errors_1.GenericError(errorMessage, errorContext);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
28
|
/**
|
|
42
29
|
* Go through all an object's properties and transform to date the values that match the right format
|
|
43
30
|
* @param {any} input - the response object after all the response plugins have been run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client-helpers.js","sourceRoot":"","sources":["../../src/client/api-client-helpers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"api-client-helpers.js","sourceRoot":"","sources":["../../src/client/api-client-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,9 @@ class SinchIterator {
|
|
|
45
45
|
const newParams = {
|
|
46
46
|
page_token: pageResult.nextPageValue,
|
|
47
47
|
};
|
|
48
|
+
if (requestOptions.method === 'POST') {
|
|
49
|
+
return updateBodyParamsAndSendRequest(this.apiClient, newParams, requestOptions, this.paginatedOperationProperties);
|
|
50
|
+
}
|
|
48
51
|
return updateQueryParamsAndSendRequest(this.apiClient, newParams, requestOptions, this.paginatedOperationProperties);
|
|
49
52
|
}
|
|
50
53
|
if (this.paginatedOperationProperties.pagination === api_client_1.PaginationEnum.PAGE
|
|
@@ -79,6 +82,27 @@ const updateQueryParamsAndSendRequest = (apiClient, newParams, requestOptions, p
|
|
|
79
82
|
...paginatedApiProperties,
|
|
80
83
|
});
|
|
81
84
|
};
|
|
85
|
+
const updateBodyParamsAndSendRequest = (apiClient, newParams, requestOptions, paginatedApiProperties) => {
|
|
86
|
+
requestOptions.body = JSON.stringify({
|
|
87
|
+
...JSON.parse(requestOptions.body),
|
|
88
|
+
...sanitizeNewParams(newParams),
|
|
89
|
+
});
|
|
90
|
+
return apiClient.processCallWithPagination({
|
|
91
|
+
url: requestOptions.hostname,
|
|
92
|
+
requestOptions,
|
|
93
|
+
...paginatedApiProperties,
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
const sanitizeNewParams = (newParams) => {
|
|
97
|
+
const sanitizedParams = {};
|
|
98
|
+
for (const key in newParams) {
|
|
99
|
+
if (newParams[key]) {
|
|
100
|
+
// Remove the quotes added by JSON.stringify to the value of the new params to avoid having pageToken: ""abc"" instead of pageToken: "abc" in the request body
|
|
101
|
+
sanitizedParams[key] = JSON.parse(newParams[key]);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return sanitizedParams;
|
|
105
|
+
};
|
|
82
106
|
const createIteratorMethodsForPagination = (apiClient, requestOptionsPromise, firstPagePromise, context) => {
|
|
83
107
|
const iterator = new SinchIterator(apiClient, requestOptionsPromise, firstPagePromise, context);
|
|
84
108
|
const autoPaginationMethods = {
|
|
@@ -116,7 +140,9 @@ const createNextPageMethod = (apiClient, context, requestOptions, nextPageValue)
|
|
|
116
140
|
default:
|
|
117
141
|
throw new Error(`Error: the pagination method (${context.pagination}) is not supported`);
|
|
118
142
|
}
|
|
119
|
-
const pageResultPromise =
|
|
143
|
+
const pageResultPromise = requestOptions.method === 'POST'
|
|
144
|
+
? updateBodyParamsAndSendRequest(apiClient, newParams, requestOptions, context)
|
|
145
|
+
: updateQueryParamsAndSendRequest(apiClient, newParams, requestOptions, context);
|
|
120
146
|
const requestOptionsPromise = new Promise((resolve) => {
|
|
121
147
|
resolve(requestOptions);
|
|
122
148
|
});
|
|
@@ -143,7 +169,7 @@ function hasMore(response, context) {
|
|
|
143
169
|
return checkIfThereAreMorePages(response, pageSize, api_client_1.PaginationEnum.PAGE2);
|
|
144
170
|
}
|
|
145
171
|
if (context.pagination === api_client_1.PaginationEnum.PAGE3) {
|
|
146
|
-
return response.
|
|
172
|
+
return response.page < response.totalPages;
|
|
147
173
|
}
|
|
148
174
|
throw new Error(`The operation ${context.operationId} is not meant to be paginated.`);
|
|
149
175
|
}
|
|
@@ -159,11 +185,16 @@ function calculateNextPage(response, context) {
|
|
|
159
185
|
const nextPage = currentPage + 1;
|
|
160
186
|
return nextPage.toString();
|
|
161
187
|
}
|
|
162
|
-
if (context.pagination === api_client_1.PaginationEnum.PAGE2
|
|
188
|
+
if (context.pagination === api_client_1.PaginationEnum.PAGE2) {
|
|
163
189
|
const currentPage = response.pageNumber || 1;
|
|
164
190
|
const nextPage = currentPage + 1;
|
|
165
191
|
return nextPage.toString();
|
|
166
192
|
}
|
|
193
|
+
if (context.pagination === api_client_1.PaginationEnum.PAGE3) {
|
|
194
|
+
const currentPage = response.page || 1;
|
|
195
|
+
const nextPage = currentPage + 1;
|
|
196
|
+
return nextPage.toString();
|
|
197
|
+
}
|
|
167
198
|
throw new Error(`The operation ${context.operationId} is not meant to be paginated.`);
|
|
168
199
|
}
|
|
169
200
|
function buildPaginationContext(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client-pagination-helper.js","sourceRoot":"","sources":["../../src/client/api-client-pagination-helper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"api-client-pagination-helper.js","sourceRoot":"","sources":["../../src/client/api-client-pagination-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApiClient, ApiCallParameters, ApiCallParametersWithPagination, PageResult, FileBuffer } from '../api/api-client';
|
|
1
|
+
import { ApiClient, ApiCallParameters, ApiCallParametersWithPagination, PageResult, FileBuffer, CSVFile } from '../api/api-client';
|
|
2
2
|
import { ApiClientOptions } from '../api/api-client-options';
|
|
3
3
|
/** Client to process the call to the API using Fetch API */
|
|
4
4
|
export declare class ApiFetchClient extends ApiClient {
|
|
@@ -16,10 +16,13 @@ export declare class ApiFetchClient extends ApiClient {
|
|
|
16
16
|
processCallWithPagination<T>(apiCallParameters: ApiCallParametersWithPagination): Promise<PageResult<T>>;
|
|
17
17
|
/** @inheritdoc */
|
|
18
18
|
processFileCall(apiCallParameters: ApiCallParameters): Promise<FileBuffer>;
|
|
19
|
+
/** @inheritdoc */
|
|
20
|
+
processCsvCall(apiCallParameters: ApiCallParameters): Promise<CSVFile>;
|
|
19
21
|
private executeRequest;
|
|
20
22
|
private processResponse;
|
|
21
23
|
private parseAndValidateResponse;
|
|
22
24
|
private processFileResponse;
|
|
25
|
+
private processCSVResponse;
|
|
23
26
|
/**
|
|
24
27
|
* Handle fetch request with token refresh mechanism
|
|
25
28
|
* @param {ApiCallParameters} apiCallParameters
|
|
@@ -46,6 +46,11 @@ class ApiFetchClient extends api_client_1.ApiClient {
|
|
|
46
46
|
const responseContext = await this.executeRequest(apiCallParameters, true);
|
|
47
47
|
return this.processFileResponse(responseContext);
|
|
48
48
|
}
|
|
49
|
+
/** @inheritdoc */
|
|
50
|
+
async processCsvCall(apiCallParameters) {
|
|
51
|
+
const responseContext = await this.executeRequest(apiCallParameters, true);
|
|
52
|
+
return this.processCSVResponse(responseContext);
|
|
53
|
+
}
|
|
49
54
|
async executeRequest(apiCallParameters, isFileDownload = false) {
|
|
50
55
|
const errorContext = (0, api_client_helpers_1.buildErrorContext)(apiCallParameters);
|
|
51
56
|
try {
|
|
@@ -86,12 +91,23 @@ class ApiFetchClient extends api_client_1.ApiClient {
|
|
|
86
91
|
throw this.buildFetchError(new Error('No response received'), context.errorContext);
|
|
87
92
|
}
|
|
88
93
|
const buffer = await context.response.buffer();
|
|
89
|
-
const fileName = this.extractFileName(context.response.headers);
|
|
94
|
+
const fileName = this.extractFileName(context.response.headers, 'pdf');
|
|
90
95
|
if (!buffer || !fileName) {
|
|
91
96
|
throw new Error('An error occurred while downloading the file');
|
|
92
97
|
}
|
|
93
98
|
return { fileName, buffer };
|
|
94
99
|
}
|
|
100
|
+
async processCSVResponse(context) {
|
|
101
|
+
if (!context.response || !context.response.ok) {
|
|
102
|
+
throw this.buildFetchError(new Error('No response received'), context.errorContext);
|
|
103
|
+
}
|
|
104
|
+
const responseText = await context.response.text();
|
|
105
|
+
const fileName = this.extractFileName(context.response.headers, 'csv');
|
|
106
|
+
if (!responseText || !fileName) {
|
|
107
|
+
throw new Error('An error occurred while downloading the file');
|
|
108
|
+
}
|
|
109
|
+
return { fileName, data: responseText };
|
|
110
|
+
}
|
|
95
111
|
/**
|
|
96
112
|
* Handle fetch request with token refresh mechanism
|
|
97
113
|
* @param {ApiCallParameters} apiCallParameters
|
|
@@ -100,7 +116,11 @@ class ApiFetchClient extends api_client_1.ApiClient {
|
|
|
100
116
|
async sinchFetch(apiCallParameters, errorContext) {
|
|
101
117
|
let response = await (0, node_fetch_1.default)(apiCallParameters.url, apiCallParameters.requestOptions);
|
|
102
118
|
if (this.isTokenExpired(response)) {
|
|
103
|
-
|
|
119
|
+
// Capture the JWT used by the failing request so the OAuth2 plugin can
|
|
120
|
+
// refuse to clear a cached token that has since been refreshed by another caller.
|
|
121
|
+
const failingAuth = apiCallParameters.requestOptions.headers.get('Authorization') || '';
|
|
122
|
+
const failingJwt = failingAuth.startsWith('Bearer ') ? failingAuth.slice('Bearer '.length) : undefined;
|
|
123
|
+
const requestOptions = await (0, api_client_helpers_1.manageExpiredToken)(apiCallParameters, errorContext, this.apiClientOptions.requestPlugins, failingJwt);
|
|
104
124
|
response = await (0, node_fetch_1.default)(apiCallParameters.url, requestOptions);
|
|
105
125
|
}
|
|
106
126
|
return response;
|
|
@@ -145,11 +165,12 @@ class ApiFetchClient extends api_client_1.ApiClient {
|
|
|
145
165
|
return new api_errors_1.EmptyResponseError(error.message || 'Fail to fetch', errorContext);
|
|
146
166
|
}
|
|
147
167
|
}
|
|
148
|
-
extractFileName(headers) {
|
|
168
|
+
extractFileName(headers, extension) {
|
|
149
169
|
const contentDisposition = headers.get('content-disposition');
|
|
150
|
-
let fileName = 'default-name.
|
|
170
|
+
let fileName = 'default-name.' + extension;
|
|
151
171
|
if (contentDisposition) {
|
|
152
|
-
|
|
172
|
+
// Support both quoted and unquoted filenames
|
|
173
|
+
const match = contentDisposition.match(/filename[*]?=['"]?([^'";\r\n]+)['"]?/i);
|
|
153
174
|
if (match && match[1]) {
|
|
154
175
|
fileName = match[1];
|
|
155
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-fetch-client.js","sourceRoot":"","sources":["../../src/client/api-fetch-client.ts"],"names":[],"mappings":";;;;;;AACA,gDAAoD;AACpD,oDAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"api-fetch-client.js","sourceRoot":"","sources":["../../src/client/api-fetch-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,12 @@ export declare const AUTH_HOSTNAME = "https://auth.sinch.com";
|
|
|
3
3
|
export declare const CONVERSATION_HOSTNAME = "https://{region}conversation.api.sinch.com";
|
|
4
4
|
export declare const CONVERSATION_TEMPLATES_HOSTNAME = "https://{region}template.api.sinch.com";
|
|
5
5
|
export declare const ELASTIC_SIP_TRUNKING_HOSTNAME = "https://elastic-trunking.api.sinch.com";
|
|
6
|
-
export declare const FAX_HOSTNAME = "https://
|
|
6
|
+
export declare const FAX_HOSTNAME = "https://fax.api.sinch.com";
|
|
7
7
|
export declare const MAILGUN_HOSTNAME = "https://api.{region}mailgun.net";
|
|
8
8
|
export declare const NUMBERS_HOSTNAME = "https://numbers.api.sinch.com";
|
|
9
9
|
export declare const SMS_HOSTNAME = "https://{region}sms.api.sinch.com";
|
|
10
10
|
export declare const VERIFICATION_HOSTNAME = "https://verification.api.sinch.com";
|
|
11
11
|
export declare const VOICE_HOSTNAME = "https://calling{region}.api.sinch.com";
|
|
12
12
|
export declare const VOICE_APPLICATION_MANAGEMENT_HOSTNAME = "https://callingapi.sinch.com";
|
|
13
|
+
export declare const NUMBER_LOOKUP_HOSTNAME = "https://lookup.api.sinch.com";
|
|
13
14
|
export declare const formatRegionalizedHostname: (hostnamePattern: string, region: string) => string;
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatRegionalizedHostname = exports.VOICE_APPLICATION_MANAGEMENT_HOSTNAME = exports.VOICE_HOSTNAME = exports.VERIFICATION_HOSTNAME = exports.SMS_HOSTNAME = exports.NUMBERS_HOSTNAME = exports.MAILGUN_HOSTNAME = exports.FAX_HOSTNAME = exports.ELASTIC_SIP_TRUNKING_HOSTNAME = exports.CONVERSATION_TEMPLATES_HOSTNAME = exports.CONVERSATION_HOSTNAME = exports.AUTH_HOSTNAME = exports.REGION_PATTERN = void 0;
|
|
3
|
+
exports.formatRegionalizedHostname = exports.NUMBER_LOOKUP_HOSTNAME = exports.VOICE_APPLICATION_MANAGEMENT_HOSTNAME = exports.VOICE_HOSTNAME = exports.VERIFICATION_HOSTNAME = exports.SMS_HOSTNAME = exports.NUMBERS_HOSTNAME = exports.MAILGUN_HOSTNAME = exports.FAX_HOSTNAME = exports.ELASTIC_SIP_TRUNKING_HOSTNAME = exports.CONVERSATION_TEMPLATES_HOSTNAME = exports.CONVERSATION_HOSTNAME = exports.AUTH_HOSTNAME = exports.REGION_PATTERN = void 0;
|
|
4
4
|
exports.REGION_PATTERN = '{region}';
|
|
5
5
|
exports.AUTH_HOSTNAME = 'https://auth.sinch.com';
|
|
6
6
|
exports.CONVERSATION_HOSTNAME = `https://${exports.REGION_PATTERN}conversation.api.sinch.com`;
|
|
7
7
|
exports.CONVERSATION_TEMPLATES_HOSTNAME = `https://${exports.REGION_PATTERN}template.api.sinch.com`;
|
|
8
8
|
exports.ELASTIC_SIP_TRUNKING_HOSTNAME = 'https://elastic-trunking.api.sinch.com';
|
|
9
|
-
exports.FAX_HOSTNAME =
|
|
9
|
+
exports.FAX_HOSTNAME = 'https://fax.api.sinch.com';
|
|
10
10
|
exports.MAILGUN_HOSTNAME = `https://api.${exports.REGION_PATTERN}mailgun.net`;
|
|
11
11
|
exports.NUMBERS_HOSTNAME = 'https://numbers.api.sinch.com';
|
|
12
12
|
exports.SMS_HOSTNAME = `https://${exports.REGION_PATTERN}sms.api.sinch.com`;
|
|
13
13
|
exports.VERIFICATION_HOSTNAME = 'https://verification.api.sinch.com';
|
|
14
14
|
exports.VOICE_HOSTNAME = `https://calling${exports.REGION_PATTERN}.api.sinch.com`;
|
|
15
15
|
exports.VOICE_APPLICATION_MANAGEMENT_HOSTNAME = 'https://callingapi.sinch.com';
|
|
16
|
+
exports.NUMBER_LOOKUP_HOSTNAME = 'https://lookup.api.sinch.com';
|
|
16
17
|
const formatRegionalizedHostname = (hostnamePattern, region) => {
|
|
17
18
|
return hostnamePattern.replace(exports.REGION_PATTERN, region);
|
|
18
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-helper.js","sourceRoot":"","sources":["../../src/domain/domain-helper.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,UAAU,CAAC;AAE5B,QAAA,aAAa,GAAG,wBAAwB,CAAC;AACzC,QAAA,qBAAqB,GAAG,WAAW,sBAAc,4BAA4B,CAAC;AAC9E,QAAA,+BAA+B,GAAG,WAAW,sBAAc,wBAAwB,CAAC;AACpF,QAAA,6BAA6B,GAAG,wCAAwC,CAAC;AACzE,QAAA,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"domain-helper.js","sourceRoot":"","sources":["../../src/domain/domain-helper.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,UAAU,CAAC;AAE5B,QAAA,aAAa,GAAG,wBAAwB,CAAC;AACzC,QAAA,qBAAqB,GAAG,WAAW,sBAAc,4BAA4B,CAAC;AAC9E,QAAA,+BAA+B,GAAG,WAAW,sBAAc,wBAAwB,CAAC;AACpF,QAAA,6BAA6B,GAAG,wCAAwC,CAAC;AACzE,QAAA,YAAY,GAAG,2BAA2B,CAAC;AAC3C,QAAA,gBAAgB,GAAG,eAAe,sBAAc,aAAa,CAAC;AAC9D,QAAA,gBAAgB,GAAG,+BAA+B,CAAC;AACnD,QAAA,YAAY,GAAG,WAAW,sBAAc,mBAAmB,CAAC;AAC5D,QAAA,qBAAqB,GAAG,oCAAoC,CAAC;AAC7D,QAAA,cAAc,GAAG,kBAAkB,sBAAc,gBAAgB,CAAC;AAClE,QAAA,qCAAqC,GAAG,8BAA8B,CAAC;AACvE,QAAA,sBAAsB,GAAG,8BAA8B,CAAC;AAE9D,MAAM,0BAA0B,GAAG,CAAC,eAAuB,EAAE,MAAc,EAAE,EAAE;IACpF,OAAO,eAAe,CAAC,OAAO,CAAC,sBAAc,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC,CAAC;AAFW,QAAA,0BAA0B,8BAErC"}
|
|
@@ -19,7 +19,7 @@ export interface UnifiedCredentials {
|
|
|
19
19
|
smsRegion?: SmsRegion;
|
|
20
20
|
/** @deprecated boolean to force the usage of the OAuth2 authentication for the SMS API - to be used when a region other of US and EU supports OAuth2 but the SDK doesn't by default */
|
|
21
21
|
forceOAuth2ForSmsApi?: boolean;
|
|
22
|
-
/**
|
|
22
|
+
/** @deprecated - not in use anymore. */
|
|
23
23
|
faxRegion?: FaxRegion;
|
|
24
24
|
/** The region for the Conversation API. Default region is US */
|
|
25
25
|
conversationRegion?: ConversationRegion;
|
|
@@ -57,7 +57,7 @@ export interface ApiHostname {
|
|
|
57
57
|
conversationTemplatesHostname?: string;
|
|
58
58
|
/** Override the hostname for the Elastic SIP Trunking API */
|
|
59
59
|
elasticSipTrunkingHostname?: string;
|
|
60
|
-
/** Override the hostname for the Fax API
|
|
60
|
+
/** Override the hostname for the Fax API */
|
|
61
61
|
faxHostname?: string;
|
|
62
62
|
/** Override the hostname for the Mailgun API - Note the regions become ineffective */
|
|
63
63
|
mailgunHostname?: string;
|
|
@@ -71,6 +71,8 @@ export interface ApiHostname {
|
|
|
71
71
|
voiceHostname?: string;
|
|
72
72
|
/** Override the hostname for the Voice Application Management API */
|
|
73
73
|
voiceApplicationManagementHostname?: string;
|
|
74
|
+
/** Override the hostname for the Number Lookup API */
|
|
75
|
+
numberLookupHostname?: string;
|
|
74
76
|
}
|
|
75
77
|
export interface ApiPlugins {
|
|
76
78
|
/** Add more plugins to action on the request before it is sent */
|
|
@@ -112,6 +114,7 @@ export declare const VoiceRegion: {
|
|
|
112
114
|
SOUTHEAST_ASIA_1: SupportedVoiceRegion.SOUTHEAST_ASIA_1;
|
|
113
115
|
SOUTHEAST_ASIA_2: SupportedVoiceRegion.SOUTHEAST_ASIA_2;
|
|
114
116
|
};
|
|
117
|
+
/** @deprecated */
|
|
115
118
|
export declare enum SupportedFaxRegion {
|
|
116
119
|
DEFAULT = "",
|
|
117
120
|
UNITED_STATES = "use1",
|
|
@@ -120,7 +123,9 @@ export declare enum SupportedFaxRegion {
|
|
|
120
123
|
SOUTHEAST_ASIA_1 = "apse1",
|
|
121
124
|
SOUTHEAST_ASIA_2 = "apse2"
|
|
122
125
|
}
|
|
126
|
+
/** @deprecated */
|
|
123
127
|
export type FaxRegion = SupportedFaxRegion | string;
|
|
128
|
+
/** @deprecated */
|
|
124
129
|
export declare const FaxRegion: {
|
|
125
130
|
DEFAULT: SupportedFaxRegion.DEFAULT;
|
|
126
131
|
UNITED_STATES: SupportedFaxRegion.UNITED_STATES;
|
|
@@ -43,6 +43,7 @@ exports.VoiceRegion = {
|
|
|
43
43
|
};
|
|
44
44
|
// ///////////
|
|
45
45
|
// Fax regions
|
|
46
|
+
/** @deprecated */
|
|
46
47
|
var SupportedFaxRegion;
|
|
47
48
|
(function (SupportedFaxRegion) {
|
|
48
49
|
SupportedFaxRegion["DEFAULT"] = "";
|
|
@@ -52,6 +53,7 @@ var SupportedFaxRegion;
|
|
|
52
53
|
SupportedFaxRegion["SOUTHEAST_ASIA_1"] = "apse1";
|
|
53
54
|
SupportedFaxRegion["SOUTHEAST_ASIA_2"] = "apse2";
|
|
54
55
|
})(SupportedFaxRegion || (exports.SupportedFaxRegion = SupportedFaxRegion = {}));
|
|
56
|
+
/** @deprecated */
|
|
55
57
|
exports.FaxRegion = {
|
|
56
58
|
...SupportedFaxRegion,
|
|
57
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-interface.js","sourceRoot":"","sources":["../../src/domain/domain-interface.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"domain-interface.js","sourceRoot":"","sources":["../../src/domain/domain-interface.ts"],"names":[],"mappings":";;;AAgGO,MAAM,oBAAoB,GAAG,CAAC,WAAgB,EAAqC,EAAE;IAC1F,MAAM,SAAS,GAAG,CAAC,WAAW,CAAuB,CAAC;IACtD,OAAO,SAAS,CAAC,SAAS,KAAK,SAAS;WACnC,SAAS,CAAC,KAAK,KAAK,SAAS;WAC7B,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC;AACzC,CAAC,CAAC;AALW,QAAA,oBAAoB,wBAK/B;AAEK,MAAM,0BAA0B,GAAG,CAAC,WAAgB,EAA2C,EAAE;IACtG,MAAM,SAAS,GAAG,CAAC,WAAW,CAA6B,CAAC;IAC5D,OAAO,SAAS,CAAC,aAAa,KAAK,SAAS;WACvC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC;AACxC,CAAC,CAAC;AAJW,QAAA,0BAA0B,8BAIrC;AAEF,gBAAgB;AAChB,cAAc;AACd,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,0CAAoB,CAAA;IACpB,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,sCAAgB,CAAA;AAClB,CAAC,EANW,kBAAkB,kCAAlB,kBAAkB,QAM7B;AAIY,QAAA,SAAS,GAAG;IACvB,GAAG,kBAAkB;CACtB,CAAC;AAEF,gBAAgB;AAChB,gBAAgB;AAChB,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,oCAAY,CAAA;IACZ,8CAAsB,CAAA;IACtB,uCAAe,CAAA;IACf,8CAAsB,CAAA;IACtB,kDAA0B,CAAA;IAC1B,kDAA0B,CAAA;AAC5B,CAAC,EAPW,oBAAoB,oCAApB,oBAAoB,QAO/B;AAIY,QAAA,WAAW,GAAG;IACzB,GAAG,oBAAoB;CACxB,CAAC;AAEF,cAAc;AACd,cAAc;AACd,kBAAkB;AAClB,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,kCAAY,CAAA;IACZ,4CAAsB,CAAA;IACtB,oCAAc,CAAA;IACd,4CAAsB,CAAA;IACtB,gDAA0B,CAAA;IAC1B,gDAA0B,CAAA;AAC5B,CAAC,EAPW,kBAAkB,kCAAlB,kBAAkB,QAO7B;AAKD,kBAAkB;AACL,QAAA,SAAS,GAAG;IACvB,GAAG,kBAAkB;CACtB,CAAC;AAEF,uBAAuB;AACvB,uBAAuB;AACvB,IAAY,2BAIX;AAJD,WAAY,2BAA2B;IACrC,mDAAoB,CAAA;IACpB,4CAAa,CAAA;IACb,4CAAa,CAAA;AACf,CAAC,EAJW,2BAA2B,2CAA3B,2BAA2B,QAItC;AAIY,QAAA,kBAAkB,GAAG;IAChC,GAAG,2BAA2B;CAC/B,CAAC;AAEF,uBAAuB;AACvB,kBAAkB;AAClB,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,sCAAY,CAAA;IACZ,uCAAa,CAAA;AACf,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC;AAIY,QAAA,aAAa,GAAG;IAC3B,GAAG,sBAAsB;CAC1B,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./api"), exports);
|
|
18
18
|
__exportStar(require("./client"), exports);
|
|
19
19
|
__exportStar(require("./domain"), exports);
|
|
20
|
+
__exportStar(require("./model"), exports);
|
|
20
21
|
__exportStar(require("./plugins"), exports);
|
|
21
22
|
__exportStar(require("./utils"), exports);
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,0CAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { WithAdditionalProperties } from './withAdditionalProperties';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withAdditionalProperties.js","sourceRoot":"","sources":["../../src/model/withAdditionalProperties.ts"],"names":[],"mappings":""}
|
|
@@ -3,11 +3,19 @@ import { RequestOptions, RequestPlugin } from '../core/request-plugin';
|
|
|
3
3
|
export declare class Oauth2TokenRequest implements RequestPlugin {
|
|
4
4
|
private readonly apiClient;
|
|
5
5
|
private token;
|
|
6
|
+
/** Shared promise for concurrent token refresh */
|
|
7
|
+
private pendingTokenRefresh;
|
|
6
8
|
getName(): string;
|
|
7
9
|
constructor(clientId: string, clientSecret: string, authenticationUrl?: string);
|
|
8
10
|
private getOAuth2Token;
|
|
11
|
+
private fetchNewToken;
|
|
9
12
|
private buildAuthorizationHeader;
|
|
10
13
|
private isTokenValid;
|
|
11
14
|
load(): PluginRunner<RequestOptions, RequestOptions>;
|
|
12
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Clear the cached token. If `failingJwt` is supplied, the cache is only
|
|
17
|
+
* cleared when it still holds that exact JWT. This prevents a stale-JWT 401
|
|
18
|
+
* retry from wiping a token that another caller already successfully refreshed.
|
|
19
|
+
*/
|
|
20
|
+
clearCachedToken(failingJwt?: string): void;
|
|
13
21
|
}
|
|
@@ -7,11 +7,14 @@ const oauth2_api_1 = require("./oauth2-api");
|
|
|
7
7
|
const basicAuthentication_1 = require("../basicAuthentication");
|
|
8
8
|
const api_fetch_client_1 = require("../../client/api-fetch-client");
|
|
9
9
|
const domain_1 = require("../../domain");
|
|
10
|
+
const EXPIRY_SAFETY_MARGIN_SEC = 60;
|
|
10
11
|
class Oauth2TokenRequest {
|
|
11
12
|
getName() {
|
|
12
13
|
return request_plugin_1.RequestPluginEnum.OAUTH2_TOKEN_REQUEST;
|
|
13
14
|
}
|
|
14
15
|
constructor(clientId, clientSecret, authenticationUrl) {
|
|
16
|
+
/** Shared promise for concurrent token refresh */
|
|
17
|
+
this.pendingTokenRefresh = null;
|
|
15
18
|
const basicAuthenticationPlugin = new basicAuthentication_1.BasicAuthenticationRequest(clientId, clientSecret);
|
|
16
19
|
if (!authenticationUrl) {
|
|
17
20
|
authenticationUrl = domain_1.AUTH_HOSTNAME;
|
|
@@ -25,41 +28,58 @@ class Oauth2TokenRequest {
|
|
|
25
28
|
if (this.isTokenValid()) {
|
|
26
29
|
return this.buildAuthorizationHeader();
|
|
27
30
|
}
|
|
31
|
+
// If a token refresh is already happening, share the same promise.
|
|
32
|
+
// This prevents N concurrent requests from making N auth server calls.
|
|
33
|
+
if (this.pendingTokenRefresh) {
|
|
34
|
+
return this.pendingTokenRefresh;
|
|
35
|
+
}
|
|
36
|
+
this.pendingTokenRefresh = this.fetchNewToken();
|
|
37
|
+
try {
|
|
38
|
+
return await this.pendingTokenRefresh;
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
this.pendingTokenRefresh = null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async fetchNewToken() {
|
|
28
45
|
const oauth2Api = new oauth2_api_1.OAuth2Api(this.apiClient);
|
|
46
|
+
let response;
|
|
29
47
|
try {
|
|
30
|
-
|
|
31
|
-
if (response.access_token) {
|
|
32
|
-
this.token = {
|
|
33
|
-
value: response.access_token,
|
|
34
|
-
status: TokenStatus.VALID,
|
|
35
|
-
};
|
|
36
|
-
return this.buildAuthorizationHeader();
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
this.token = {
|
|
40
|
-
value: '',
|
|
41
|
-
status: TokenStatus.INVALID,
|
|
42
|
-
};
|
|
43
|
-
console.error('No access_token has been returned. Response = ' + JSON.stringify(response));
|
|
44
|
-
return {};
|
|
45
|
-
}
|
|
48
|
+
response = await oauth2Api.postAccessToken();
|
|
46
49
|
}
|
|
47
50
|
catch (e) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
// Propagate the auth failure to the caller.
|
|
52
|
+
this.token = undefined;
|
|
53
|
+
throw e;
|
|
54
|
+
}
|
|
55
|
+
if (!response.access_token) {
|
|
56
|
+
this.token = undefined;
|
|
57
|
+
throw new Error('The authentication server did not return an access_token. Response keys: ['
|
|
58
|
+
+ Object.keys(response).join(', ') + ']');
|
|
54
59
|
}
|
|
60
|
+
this.token = {
|
|
61
|
+
value: response.access_token,
|
|
62
|
+
status: TokenStatus.VALID,
|
|
63
|
+
exp: decodeJwtExp(response.access_token),
|
|
64
|
+
};
|
|
65
|
+
return this.buildAuthorizationHeader();
|
|
55
66
|
}
|
|
56
67
|
buildAuthorizationHeader() {
|
|
57
68
|
return { Authorization: `Bearer ${this.token.value}` };
|
|
58
69
|
}
|
|
59
70
|
isTokenValid() {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
if (!this.token
|
|
72
|
+
|| this.token.status !== TokenStatus.VALID
|
|
73
|
+
|| this.token.value.trim().length === 0) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
// Proactive expiry check: if we could decode the JWT's `exp`, refresh ahead of time.
|
|
77
|
+
// This avoids the round-trip-and-retry pattern at every expiry boundary
|
|
78
|
+
if (this.token.exp !== undefined) {
|
|
79
|
+
const nowSec = Math.floor(Date.now() / 1000);
|
|
80
|
+
return this.token.exp > nowSec + EXPIRY_SAFETY_MARGIN_SEC; // 60s safety margin
|
|
81
|
+
}
|
|
82
|
+
return true;
|
|
63
83
|
}
|
|
64
84
|
load() {
|
|
65
85
|
return {
|
|
@@ -68,7 +88,15 @@ class Oauth2TokenRequest {
|
|
|
68
88
|
}).load().transform,
|
|
69
89
|
};
|
|
70
90
|
}
|
|
71
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Clear the cached token. If `failingJwt` is supplied, the cache is only
|
|
93
|
+
* cleared when it still holds that exact JWT. This prevents a stale-JWT 401
|
|
94
|
+
* retry from wiping a token that another caller already successfully refreshed.
|
|
95
|
+
*/
|
|
96
|
+
clearCachedToken(failingJwt) {
|
|
97
|
+
if (failingJwt !== undefined && this.token && this.token.value !== failingJwt) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
72
100
|
this.token = undefined;
|
|
73
101
|
}
|
|
74
102
|
}
|
|
@@ -78,4 +106,21 @@ var TokenStatus;
|
|
|
78
106
|
TokenStatus[TokenStatus["INVALID"] = 0] = "INVALID";
|
|
79
107
|
TokenStatus[TokenStatus["VALID"] = 1] = "VALID";
|
|
80
108
|
})(TokenStatus || (TokenStatus = {}));
|
|
109
|
+
/**
|
|
110
|
+
* Decode the `exp` claim from a JWT without verifying the signature.
|
|
111
|
+
*/
|
|
112
|
+
const decodeJwtExp = (jwt) => {
|
|
113
|
+
const parts = jwt.split('.');
|
|
114
|
+
if (parts.length !== 3) {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
const decoded = Buffer.from(parts[1], 'base64url').toString('utf8');
|
|
119
|
+
const payload = JSON.parse(decoded);
|
|
120
|
+
return typeof payload.exp === 'number' ? payload.exp : undefined;
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
81
126
|
//# sourceMappingURL=oauth2-token.request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-token.request.js","sourceRoot":"","sources":["../../../src/plugins/oauth2/oauth2-token.request.ts"],"names":[],"mappings":";;;AACA,2DAA0F;AAC1F,8DAAiE;AAEjE,6CAAyC;AACzC,gEAAoE;AACpE,oEAA+D;AAC/D,yCAA6C;AAE7C,MAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"oauth2-token.request.js","sourceRoot":"","sources":["../../../src/plugins/oauth2/oauth2-token.request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
6
|
exports.calculateSignature = exports.calculateMD5 = exports.calculateWebhookSignature = exports.computeSignedData = exports.validateSignatureHeader = exports.validateAuthenticationHeader = exports.validateWebhookSignature = exports.generateAuthorizationHeader = void 0;
|
|
40
7
|
const crypto_1 = __importDefault(require("crypto"));
|
|
41
|
-
const console = __importStar(require("console"));
|
|
42
8
|
/**
|
|
43
9
|
* Generate authorization header for application-signed requests (Verification and Voice)
|
|
44
10
|
* @param {string} httpVerb - request's HTTP method
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization.helper.js","sourceRoot":"","sources":["../../src/utils/authorization.helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authorization.helper.js","sourceRoot":"","sources":["../../src/utils/authorization.helper.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":";;;AAOO,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,IAAiB,EAAU,EAAE;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE9D,QAAQ,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":";;;AAOO,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,IAAiB,EAAU,EAAE;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE9D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;QAC5B,KAAK,KAAK;YACR,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACnC,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC;QACnD,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,MAAM,CAAC;QAC3D,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC;IACrE,CAAC;AACH,CAAC,CAAC;AAvBW,QAAA,UAAU,cAuBrB;AAEK,MAAM,sBAAsB,GAAG,CAAC,UAAqC,EAAsB,EAAE;IAClG,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,kBAAU,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAZW,QAAA,sBAAsB,0BAYjC;AAEK,MAAM,2BAA2B,GAAG,CACzC,YAAoD,EAChC,EAAE;IACtB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,YAAY,CAAC;QACtB,CAAC;aAAM,IAAI,YAAY,YAAY,IAAI,EAAE,CAAC;YACxC,OAAO,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,kBAAU,EAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAbW,QAAA,2BAA2B,+BAatC"}
|