@lilaquadrat/studio 10.0.0-beta.20 → 10.0.0-beta.21

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.
@@ -2,8 +2,9 @@ declare class AuthService {
2
2
  private tokenCache;
3
3
  url: string;
4
4
  constructor(url: string);
5
- token(clientId: string, clientSecret: string): Promise<string | null>;
6
- getToken(clientId: string, clientSecret: string): Promise<void>;
5
+ token(clientId: string, clientSecret: string): Promise<string>;
6
+ getToken(clientId: string, clientSecret: string): Promise<string>;
7
+ private buildTokenUrl;
7
8
  }
8
9
  declare const _default: AuthService;
9
10
  export default _default;
@@ -11,53 +11,53 @@ class AuthService {
11
11
  logger.debug('authservice.token.cached');
12
12
  return this.tokenCache.accessToken;
13
13
  }
14
- // No valid token, fetch a new one
15
- await this.getToken(clientId, clientSecret);
16
- // Check cache again after fetching
17
- if (this.tokenCache && Date.now() < this.tokenCache.expiresAt) {
18
- return this.tokenCache.accessToken;
19
- }
20
- return null;
14
+ // No valid token, fetch a new one and return it directly
15
+ logger.debug('authservice.token.fetching');
16
+ return await this.getToken(clientId, clientSecret);
21
17
  }
22
18
  async getToken(clientId, clientSecret) {
23
- logger.debug('authservice.token.get');
24
- const data = querystring.stringify({
19
+ if (!this.url)
20
+ throw new Error('OAUTH_URL is not configured');
21
+ const tokenUrl = this.buildTokenUrl();
22
+ const body = querystring.stringify({
25
23
  client_id: clientId,
26
24
  client_secret: clientSecret,
27
25
  audience: 'https://editor.lilaquadrat.de/api',
28
26
  grant_type: 'client_credentials',
29
27
  });
28
+ const response = await fetch(tokenUrl, {
29
+ method: 'POST',
30
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
31
+ body,
32
+ });
33
+ if (!response.ok) {
34
+ const errorData = await response.json().catch(() => ({}));
35
+ logger.error({ message: 'Token request failed', status: response.status, errorData });
36
+ throw new Error(`Token request failed with status ${response.status}`);
37
+ }
38
+ const token = await response.json();
39
+ if (!token.access_token || !token.expires_in) {
40
+ logger.error({ message: 'Invalid token response', token });
41
+ throw new Error('Invalid token response from OAuth server');
42
+ }
43
+ this.tokenCache = {
44
+ accessToken: token.access_token,
45
+ expiresAt: Date.now() + (token.expires_in - 60) * 1000,
46
+ };
47
+ logger.debug('authservice.token.get.success');
48
+ return token.access_token;
49
+ }
50
+ buildTokenUrl() {
30
51
  try {
31
- const response = await fetch(`https://${this.url}/oauth/token`, {
32
- method: 'POST',
33
- headers: {
34
- 'Content-Type': 'application/x-www-form-urlencoded',
35
- },
36
- body: data,
37
- });
38
- if (!response.ok) {
39
- const errorData = await response.json();
40
- logger.error(errorData);
41
- logger.debug('authservice.token.get.error');
42
- throw new Error(`token request failed with ${response.status}`);
43
- }
44
- const token = await response.json();
45
- // Cache the token with expiration (subtract 60 seconds as buffer)
46
- if (token.access_token && token.expires_in) {
47
- this.tokenCache = {
48
- accessToken: token.access_token,
49
- expiresAt: Date.now() + (token.expires_in - 60) * 1000,
50
- };
51
- logger.debug('authservice.token.get.success');
52
- }
52
+ const url = new URL(`htt1ps://${this.url}/oauth/token`);
53
+ logger.debug(`authservice.token.url: ${url.toString()}`);
54
+ return url.toString();
53
55
  }
54
56
  catch (error) {
55
- logger.debug('authservice.token.get.error');
56
- logger.error(error);
57
- throw error;
57
+ logger.error({ message: 'Invalid OAUTH_URL', url: this.url, error });
58
+ throw new Error(`Invalid OAUTH_URL: ${this.url}`);
58
59
  }
59
60
  }
60
- ;
61
61
  }
62
62
  export default new AuthService(process.env.OAUTH_URL);
63
63
  //# sourceMappingURL=auth.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,WAAW,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW;IASf,YAAY,GAAW;QAPf,eAAU,GAGP,IAAI,CAAC;QAMd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAEjB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,YAAoB;QAEhD,wCAAwC;QACxC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAE9D,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAErC,CAAC;QAED,kCAAkC;QAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE5C,mCAAmC;QACnC,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAE9D,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAErC,CAAC;QAED,OAAO,IAAI,CAAC;IAEd,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,YAAoB;QAEnD,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC;YACjC,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,YAAY;YAC3B,QAAQ,EAAE,mCAAmC;YAC7C,UAAU,EAAE,oBAAoB;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,WAAW,IAAI,CAAC,GAAG,cAAc,EACjC;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;gBACD,IAAI,EAAE,IAAI;aACX,CACF,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAEjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAElE,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAIhC,CAAC;YAEF,kEAAkE;YAClE,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAE3C,IAAI,CAAC,UAAU,GAAG;oBAChB,WAAW,EAAE,KAAK,CAAC,YAAY;oBAC/B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,IAAI;iBACvD,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAEhD,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,KAAK,CAAC;QAEd,CAAC;IAEH,CAAC;IAAA,CAAC;CAEH;AAED,eAAe,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,SAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lilaquadrat/studio",
3
- "version": "10.0.0-beta.20",
3
+ "version": "10.0.0-beta.21",
4
4
  "description": "classes and tools for STUDIO",
5
5
  "type": "module",
6
6
  "license": "MIT",