@forestadmin/agent 1.4.4 → 1.4.5

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
@@ -5,4 +5,5 @@ export declare function createAgent<S extends TSchema = TSchema>(options: AgentO
5
5
  export { Agent };
6
6
  export { CollectionCustomizer };
7
7
  export { AgentOptions } from './types';
8
+ export { default as SchemaGenerator } from './utils/forest-schema/generator-collection';
8
9
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CollectionCustomizer = exports.Agent = exports.createAgent = void 0;
6
+ exports.SchemaGenerator = exports.CollectionCustomizer = exports.Agent = exports.createAgent = void 0;
7
7
  const datasource_customizer_1 = require("@forestadmin/datasource-customizer");
8
8
  Object.defineProperty(exports, "CollectionCustomizer", { enumerable: true, get: function () { return datasource_customizer_1.CollectionCustomizer; } });
9
9
  const agent_1 = __importDefault(require("./agent"));
@@ -12,4 +12,7 @@ function createAgent(options) {
12
12
  return new agent_1.default(options);
13
13
  }
14
14
  exports.createAgent = createAgent;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOEVBQW1GO0FBVTFFLHFHQVZBLDRDQUFvQixPQVVBO0FBUjdCLG9EQUE0QjtBQU9uQixnQkFQRixlQUFLLENBT0U7QUFKZCxTQUFnQixXQUFXLENBQThCLE9BQXFCO0lBQzVFLE9BQU8sSUFBSSxlQUFLLENBQUksT0FBTyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUZELGtDQUVDIn0=
15
+ // export is necessary for the agent-generator package
16
+ var generator_collection_1 = require("./utils/forest-schema/generator-collection");
17
+ Object.defineProperty(exports, "SchemaGenerator", { enumerable: true, get: function () { return __importDefault(generator_collection_1).default; } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOEVBQW1GO0FBVTFFLHFHQVZBLDRDQUFvQixPQVVBO0FBUjdCLG9EQUE0QjtBQU9uQixnQkFQRixlQUFLLENBT0U7QUFKZCxTQUFnQixXQUFXLENBQThCLE9BQXFCO0lBQzVFLE9BQU8sSUFBSSxlQUFLLENBQUksT0FBTyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUZELGtDQUVDO0FBTUQsc0RBQXNEO0FBQ3RELG1GQUF3RjtBQUEvRSx3SUFBQSxPQUFPLE9BQW1CIn0=
@@ -1,6 +1,5 @@
1
1
  /// <reference types="koa__router" />
2
2
  import Router from '@koa/router';
3
- import { Context } from 'koa';
4
3
  import { RouteType } from '../../types';
5
4
  import BaseRoute from '../base-route';
6
5
  export default class Authentication extends BaseRoute {
@@ -8,8 +7,8 @@ export default class Authentication extends BaseRoute {
8
7
  private client;
9
8
  bootstrap(): Promise<void>;
10
9
  setupRoutes(router: Router): void;
11
- handleAuthentication(context: Context): Promise<void>;
12
- handleAuthenticationCallback(context: Context): Promise<void>;
10
+ private handleAuthentication;
11
+ private handleAuthenticationCallback;
13
12
  private static checkRenderingId;
14
13
  }
15
14
  //# sourceMappingURL=authentication.d.ts.map
@@ -6,9 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
7
7
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
8
  const koa_jwt_1 = __importDefault(require("koa-jwt"));
9
- const openid_client_1 = require("openid-client");
10
9
  const types_1 = require("../../types");
11
- const forest_http_api_1 = __importDefault(require("../../utils/forest-http-api"));
12
10
  const base_route_1 = __importDefault(require("../base-route"));
13
11
  class Authentication extends base_route_1.default {
14
12
  constructor() {
@@ -16,16 +14,7 @@ class Authentication extends base_route_1.default {
16
14
  this.type = types_1.RouteType.Authentication;
17
15
  }
18
16
  async bootstrap() {
19
- // Retrieve OpenId Issuer from forestadmin-server
20
- // We can't use 'Issuer.discover' because the oidc config is behind an auth-wall.
21
- const issuer = new openid_client_1.Issuer(await forest_http_api_1.default.getOpenIdIssuerMetadata(this.options));
22
- const registration = {
23
- token_endpoint_auth_method: 'none',
24
- };
25
- // Register a new oidc client
26
- this.client = await issuer.Client.register(registration, {
27
- initialAccessToken: this.options.envSecret,
28
- });
17
+ this.client = await this.options.forestAdminClient.getOpenIdClient();
29
18
  }
30
19
  setupRoutes(router) {
31
20
  router.post('/authentication', this.handleAuthentication.bind(this));
@@ -56,13 +45,10 @@ class Authentication extends base_route_1.default {
56
45
  // Retrieve user
57
46
  const tokenSet = await this.client.callback(undefined, query, { state });
58
47
  const accessToken = tokenSet.access_token;
59
- const user = await forest_http_api_1.default.getUserInformation(this.options, renderingId, accessToken);
48
+ const user = await this.options.forestAdminClient.getUserInfo(renderingId, accessToken);
60
49
  // Generate final token.
61
50
  const token = jsonwebtoken_1.default.sign(user, this.options.authSecret, { expiresIn: '1 hours' });
62
- context.response.body = {
63
- token,
64
- tokenData: jsonwebtoken_1.default.decode(token),
65
- };
51
+ context.response.body = { token, tokenData: jsonwebtoken_1.default.decode(token) };
66
52
  }
67
53
  static checkRenderingId(renderingId) {
68
54
  if (Number.isNaN(renderingId)) {
@@ -71,4 +57,4 @@ class Authentication extends base_route_1.default {
71
57
  }
72
58
  }
73
59
  exports.default = Authentication;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVzL3NlY3VyaXR5L2F1dGhlbnRpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBQWtFO0FBRWxFLGdFQUF3QztBQUV4QyxzREFBMEI7QUFDMUIsaURBQWlFO0FBRWpFLHVDQUF3QztBQUN4QyxrRkFBd0Q7QUFDeEQsK0RBQXNDO0FBRXRDLE1BQXFCLGNBQWUsU0FBUSxvQkFBUztJQUFyRDs7UUFDVyxTQUFJLEdBQUcsaUJBQVMsQ0FBQyxjQUFjLENBQUM7SUFzRTNDLENBQUM7SUFsRVUsS0FBSyxDQUFDLFNBQVM7UUFDdEIsaURBQWlEO1FBQ2pELGlGQUFpRjtRQUNqRixNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFNLENBQUMsTUFBTSx5QkFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXJGLE1BQU0sWUFBWSxHQUFHO1lBQ25CLDBCQUEwQixFQUFFLE1BQTBCO1NBQ3ZELENBQUM7UUFFRiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtZQUN2RCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXJGLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBQSxpQkFBRyxFQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQWdCO1FBQ2hELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5RCxjQUFjLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3BELEtBQUssRUFBRSxzQkFBc0I7WUFDN0IsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFnQjtRQUN4RCx1QkFBdUI7UUFDdkIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxJQUFJLFdBQW1CLENBQUM7UUFFeEIsSUFBSTtZQUNGLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUM1QyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDOUM7UUFBQyxNQUFNO1lBQ04sTUFBTSxJQUFJLG9DQUFlLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUMvRTtRQUVELGdCQUFnQjtRQUNoQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsTUFBTSx5QkFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTVGLHdCQUF3QjtRQUN4QixNQUFNLEtBQUssR0FBRyxzQkFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUV6RixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRztZQUN0QixLQUFLO1lBQ0wsU0FBUyxFQUFFLHNCQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUNqRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxJQUFJLG9DQUFlLENBQUMsK0JBQStCLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7Q0FDRjtBQXZFRCxpQ0F1RUMifQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVzL3NlY3VyaXR5L2F1dGhlbnRpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsd0VBQWtFO0FBRWxFLGdFQUF3QztBQUV4QyxzREFBMEI7QUFFMUIsdUNBQXdDO0FBQ3hDLCtEQUFzQztBQUV0QyxNQUFxQixjQUFlLFNBQVEsb0JBQVM7SUFBckQ7O1FBQ1csU0FBSSxHQUFHLGlCQUFTLENBQUMsY0FBYyxDQUFDO0lBd0QzQyxDQUFDO0lBcERVLEtBQUssQ0FBQyxTQUFTO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYztRQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLENBQUMsR0FBRyxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVyRixNQUFNLENBQUMsR0FBRyxDQUFDLElBQUEsaUJBQUcsRUFBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVPLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxPQUFnQjtRQUNqRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDOUQsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUNwRCxLQUFLLEVBQUUsc0JBQXNCO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFTyxLQUFLLENBQUMsNEJBQTRCLENBQUMsT0FBZ0I7UUFDekQsdUJBQXVCO1FBQ3ZCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxXQUFtQixDQUFDO1FBRXhCLElBQUk7WUFDRixXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUM7WUFDNUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzlDO1FBQUMsTUFBTTtZQUNOLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7U0FDL0U7UUFFRCxnQkFBZ0I7UUFDaEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6RSxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXhGLHdCQUF3QjtRQUN4QixNQUFNLEtBQUssR0FBRyxzQkFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUV6RixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsc0JBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQW1CO1FBQ2pELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QixNQUFNLElBQUksb0NBQWUsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQztDQUNGO0FBekRELGlDQXlEQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/agent",
3
- "version": "1.4.4",
3
+ "version": "1.4.5",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {
@@ -16,7 +16,7 @@
16
16
  "@fastify/express": "^1.1.0",
17
17
  "@forestadmin/datasource-customizer": "1.4.3",
18
18
  "@forestadmin/datasource-toolkit": "1.1.1",
19
- "@forestadmin/forestadmin-client": "1.0.1",
19
+ "@forestadmin/forestadmin-client": "1.0.2",
20
20
  "@koa/cors": "^3.3.0",
21
21
  "@koa/router": "^10.1.1",
22
22
  "forest-ip-utils": "^1.0.1",
@@ -28,7 +28,6 @@
28
28
  "koa-jwt": "^4.0.3",
29
29
  "luxon": "^2.3.0",
30
30
  "object-hash": "^3.0.0",
31
- "openid-client": "5.2.1",
32
31
  "superagent": "^7.0.1",
33
32
  "uuid": "^8.3.2"
34
33
  },
@@ -59,6 +58,7 @@
59
58
  "express": "^4.18.1",
60
59
  "fastify": "^3.29.0",
61
60
  "fastify2": "npm:fastify@^2.15.3",
61
+ "openid-client": "5.2.1",
62
62
  "reflect-metadata": "^0.1.13",
63
63
  "rxjs": "^7.5.5"
64
64
  }
@@ -1,23 +0,0 @@
1
- import { IssuerMetadata } from 'openid-client';
2
- import { AgentOptions } from '../types';
3
- export declare type UserInfo = {
4
- id: number;
5
- email: string;
6
- firstName: string;
7
- lastName: string;
8
- team: string;
9
- renderingId: number;
10
- role: string;
11
- tags: {
12
- [key: string]: string;
13
- };
14
- permissionLevel: string;
15
- };
16
- declare type HttpOptions = Pick<AgentOptions, 'envSecret' | 'forestServerUrl' | 'isProduction'>;
17
- export default class ForestHttpApi {
18
- static getOpenIdIssuerMetadata(options: HttpOptions): Promise<IssuerMetadata>;
19
- static getUserInformation(options: HttpOptions, renderingId: number, accessToken: string): Promise<UserInfo>;
20
- private static handleResponseError;
21
- }
22
- export {};
23
- //# sourceMappingURL=forest-http-api.d.ts.map
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const superagent_1 = __importDefault(require("superagent"));
7
- class ForestHttpApi {
8
- static async getOpenIdIssuerMetadata(options) {
9
- try {
10
- const response = await superagent_1.default
11
- .get(new URL('/oidc/.well-known/openid-configuration', options.forestServerUrl).toString())
12
- .set('forest-secret-key', options.envSecret);
13
- return response.body;
14
- }
15
- catch (e) {
16
- this.handleResponseError(e);
17
- }
18
- }
19
- static async getUserInformation(options, renderingId, accessToken) {
20
- try {
21
- const url = new URL(`/liana/v2/renderings/${renderingId}/authorization`, options.forestServerUrl);
22
- const response = await superagent_1.default
23
- .get(url.toString())
24
- .set('forest-token', accessToken)
25
- .set('forest-secret-key', options.envSecret);
26
- const { attributes, id } = response.body.data;
27
- return {
28
- id: Number(id),
29
- email: attributes.email,
30
- firstName: attributes.first_name,
31
- lastName: attributes.last_name,
32
- team: attributes.teams[0],
33
- role: attributes.role,
34
- tags: attributes.tags?.reduce((memo, { key, value }) => ({ ...memo, [key]: value }), {}),
35
- renderingId,
36
- permissionLevel: attributes.permission_level,
37
- };
38
- }
39
- catch (e) {
40
- this.handleResponseError(e);
41
- }
42
- }
43
- static handleResponseError(e) {
44
- if (/certificate/i.test(e.message))
45
- throw new Error('ForestAdmin server TLS certificate cannot be verified. ' +
46
- 'Please check that your system time is set properly.');
47
- if (e.response) {
48
- const status = e?.response?.status;
49
- // 0 == offline, 502 == bad gateway from proxy
50
- if (status === 0 || status === 502)
51
- throw new Error('Failed to reach ForestAdmin server. Are you online?');
52
- if (status === 404)
53
- throw new Error('ForestAdmin server failed to find the project related to the envSecret you configured.' +
54
- ' Can you check that you copied it properly in the Forest initialization?');
55
- if (status === 503)
56
- throw new Error('Forest is in maintenance for a few minutes. We are upgrading your experience in ' +
57
- 'the forest. We just need a few more minutes to get it right.');
58
- throw new Error('An unexpected error occurred while contacting the ForestAdmin server. ' +
59
- 'Please contact support@forestadmin.com for further investigations.');
60
- }
61
- throw e;
62
- }
63
- }
64
- exports.default = ForestHttpApi;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWh0dHAtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZvcmVzdC1odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLDREQUFpRTtBQWtCakUsTUFBcUIsYUFBYTtJQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLE9BQW9CO1FBQ3ZELElBQUk7WUFDRixNQUFNLFFBQVEsR0FBYSxNQUFNLG9CQUFVO2lCQUN4QyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsd0NBQXdDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUMxRixHQUFHLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRS9DLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztTQUN0QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQzdCLE9BQW9CLEVBQ3BCLFdBQW1CLEVBQ25CLFdBQW1CO1FBRW5CLElBQUk7WUFDRixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FDakIsd0JBQXdCLFdBQVcsZ0JBQWdCLEVBQ25ELE9BQU8sQ0FBQyxlQUFlLENBQ3hCLENBQUM7WUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLG9CQUFVO2lCQUM5QixHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNuQixHQUFHLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztpQkFDaEMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUvQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBRTlDLE9BQU87Z0JBQ0wsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ2QsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixTQUFTLEVBQUUsVUFBVSxDQUFDLFVBQVU7Z0JBQ2hDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUztnQkFDOUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3hGLFdBQVc7Z0JBQ1gsZUFBZSxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0I7YUFDN0MsQ0FBQztTQUNIO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQVE7UUFDekMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FDYix5REFBeUQ7Z0JBQ3ZELHFEQUFxRCxDQUN4RCxDQUFDO1FBRUosSUFBSyxDQUFtQixDQUFDLFFBQVEsRUFBRTtZQUNqQyxNQUFNLE1BQU0sR0FBSSxDQUFtQixFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUM7WUFFdEQsOENBQThDO1lBQzlDLElBQUksTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLEtBQUssR0FBRztnQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1lBRXpFLElBQUksTUFBTSxLQUFLLEdBQUc7Z0JBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2Isd0ZBQXdGO29CQUN0RiwwRUFBMEUsQ0FDN0UsQ0FBQztZQUVKLElBQUksTUFBTSxLQUFLLEdBQUc7Z0JBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0ZBQWtGO29CQUNoRiw4REFBOEQsQ0FDakUsQ0FBQztZQUVKLE1BQU0sSUFBSSxLQUFLLENBQ2Isd0VBQXdFO2dCQUN0RSxvRUFBb0UsQ0FDdkUsQ0FBQztTQUNIO1FBRUQsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0NBQ0Y7QUFqRkQsZ0NBaUZDIn0=