@lokalise/expert-api-s2s-client 1.12.0 → 1.13.0
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.
|
@@ -13,11 +13,13 @@ type OAuth2ClientConfiguration = {
|
|
|
13
13
|
* Uses Node.js SDK for public API part and OpenID client for authentication part.
|
|
14
14
|
*/
|
|
15
15
|
export declare class ExpertPublicApiClient implements ExpertApiS2SClient {
|
|
16
|
+
private static readonly TOKEN_EXPIRY_BUFFER_MS;
|
|
16
17
|
private readonly oauth2ClientConfiguration;
|
|
17
18
|
private openIdClientConfiguration?;
|
|
18
|
-
private accessToken;
|
|
19
19
|
private lokaliseApiClient;
|
|
20
|
+
private accessToken;
|
|
20
21
|
private lastObtainedApiTokenExpiresAt?;
|
|
22
|
+
private tokenFetchPromise?;
|
|
21
23
|
constructor(apiBaseUrl: string, oauth2ClientConfiguration: OAuth2ClientConfiguration);
|
|
22
24
|
createProject(teamId: string, params: CreateProjectParams, requestContext: RequestContext): Promise<ApiProject>;
|
|
23
25
|
addContributorsToProject(projectId: string, body: AddContributorsRequestBody, requestContext: RequestContext): Promise<AddContributorsResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpertPublicApiClient.d.ts","sourceRoot":"","sources":["../src/ExpertPublicApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAE/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,mBAAmB,EAEnB,4BAA4B,EAC5B,qBAAqB,EACrB,yCAAyC,EACzC,0CAA0C,EAC1C,kBAAkB,EACnB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,iCAAiC,EACjC,YAAY,EACb,MAAM,yBAAyB,CAAA;AAEhC,KAAK,yBAAyB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAOD;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,kBAAkB;IAC9D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA2B;IAGrE,OAAO,CAAC,yBAAyB,CAAC,CAAe;
|
|
1
|
+
{"version":3,"file":"ExpertPublicApiClient.d.ts","sourceRoot":"","sources":["../src/ExpertPublicApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,14 +9,16 @@ const TEAM_USER_GROUP_LIST_MAX_PAGES = 10;
|
|
|
9
9
|
* Uses Node.js SDK for public API part and OpenID client for authentication part.
|
|
10
10
|
*/
|
|
11
11
|
export class ExpertPublicApiClient {
|
|
12
|
+
static TOKEN_EXPIRY_BUFFER_MS = 30 * 1000; // 30 seconds
|
|
12
13
|
oauth2ClientConfiguration;
|
|
13
14
|
/* OpenID client configuration is static and can be safely re-used, we want to instantiate it only once and will keep here for re-using. */
|
|
14
15
|
openIdClientConfiguration;
|
|
15
|
-
accessToken;
|
|
16
16
|
/* Lokalise API client depends on the access token so we need to re-create it each time we obtain a new token. */
|
|
17
17
|
lokaliseApiClient;
|
|
18
18
|
/* Access token we obtain is valid for a limited time, we need to keep track of it and re-obtain when it expires. */
|
|
19
|
+
accessToken;
|
|
19
20
|
lastObtainedApiTokenExpiresAt;
|
|
21
|
+
tokenFetchPromise;
|
|
20
22
|
constructor(apiBaseUrl, oauth2ClientConfiguration) {
|
|
21
23
|
this.lokaliseApiClient = new BackendExpertHttpClient(apiBaseUrl);
|
|
22
24
|
this.accessToken = null;
|
|
@@ -84,13 +86,52 @@ export class ExpertPublicApiClient {
|
|
|
84
86
|
}
|
|
85
87
|
}
|
|
86
88
|
async refreshAuthenticationToken(requestContext) {
|
|
87
|
-
|
|
89
|
+
// If a refresh is already in-flight, reuse it to avoid duplicate token fetches
|
|
90
|
+
if (this.tokenFetchPromise) {
|
|
91
|
+
try {
|
|
92
|
+
const { accessToken, expiresAt } = await this.tokenFetchPromise;
|
|
93
|
+
this.accessToken = accessToken;
|
|
94
|
+
this.lastObtainedApiTokenExpiresAt = expiresAt;
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
const now = new Date();
|
|
98
|
+
const canUseCurrentToken = this.accessToken !== null &&
|
|
99
|
+
this.lastObtainedApiTokenExpiresAt !== undefined &&
|
|
100
|
+
this.lastObtainedApiTokenExpiresAt > now;
|
|
101
|
+
if (canUseCurrentToken) {
|
|
102
|
+
requestContext?.logger.warn({ err }, 'Failed to refresh OAuth2 access token, using current token until expiry');
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
throw err;
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const needsRefresh = this.accessToken === null ||
|
|
88
110
|
(this.lastObtainedApiTokenExpiresAt !== undefined &&
|
|
89
|
-
this.lastObtainedApiTokenExpiresAt
|
|
90
|
-
|
|
111
|
+
this.lastObtainedApiTokenExpiresAt <=
|
|
112
|
+
new Date(Date.now() + ExpertPublicApiClient.TOKEN_EXPIRY_BUFFER_MS));
|
|
113
|
+
if (!needsRefresh)
|
|
114
|
+
return;
|
|
115
|
+
this.tokenFetchPromise = this.obtainNewAccessToken(requestContext);
|
|
116
|
+
try {
|
|
117
|
+
const { accessToken, expiresAt } = await this.tokenFetchPromise;
|
|
91
118
|
this.accessToken = accessToken;
|
|
92
119
|
this.lastObtainedApiTokenExpiresAt = expiresAt;
|
|
93
120
|
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
const now = new Date();
|
|
123
|
+
const canUseCurrentToken = this.accessToken !== null &&
|
|
124
|
+
this.lastObtainedApiTokenExpiresAt !== undefined &&
|
|
125
|
+
this.lastObtainedApiTokenExpiresAt > now;
|
|
126
|
+
if (canUseCurrentToken) {
|
|
127
|
+
requestContext?.logger.warn({ err }, 'Failed to refresh OAuth2 access token, using current token until expiry');
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
throw err;
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
this.tokenFetchPromise = undefined;
|
|
134
|
+
}
|
|
94
135
|
}
|
|
95
136
|
async getProjectLanguages(projectId, requestContext) {
|
|
96
137
|
const project = await this.getProject(projectId, requestContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpertPublicApiClient.js","sourceRoot":"","sources":["../src/ExpertPublicApiClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAe9E,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAe5F,MAAM,sBAAsB,GAAG,EAAE,CAAA;AACjC,MAAM,mCAAmC,GAAG,EAAE,CAAA;AAC9C,MAAM,wBAAwB,GAAG,EAAE,CAAA;AACnC,MAAM,8BAA8B,GAAG,EAAE,CAAA;AAEzC;;;GAGG;AACH,MAAM,OAAO,qBAAqB;
|
|
1
|
+
{"version":3,"file":"ExpertPublicApiClient.js","sourceRoot":"","sources":["../src/ExpertPublicApiClient.ts"],"names":[],"mappings":"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"}
|