@intuitionrobotics/user-account 0.41.76 → 0.42.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.
@@ -1,7 +1,7 @@
1
1
  import { Module } from "@intuitionrobotics/ts-common";
2
2
  import { FirestoreTransaction } from "@intuitionrobotics/firebase/backend";
3
- import { DB_Account, DB_Session, FrontType, Request_CreateAccount, Request_LoginAccount, Request_UpsertAccount, Response_Auth, UI_Account, UI_Session } from "./_imports";
4
- import { ExpressRequest, HeaderKey, QueryRequestInfo } from "@intuitionrobotics/thunderstorm/backend";
3
+ import { DB_Account, DB_Session, FrontType, Request_CreateAccount, Request_LoginAccount, Request_UpsertAccount, Response_Auth, Response_Validation, UI_Account, UI_Session } from "./_imports";
4
+ import { ApiResponse, ExpressRequest, HeaderKey, QueryRequestInfo } from "@intuitionrobotics/thunderstorm/backend";
5
5
  export declare const Header_SessionId: HeaderKey;
6
6
  declare type Config = {
7
7
  projectId: string;
@@ -9,6 +9,7 @@ declare type Config = {
9
9
  web: number;
10
10
  app: number;
11
11
  };
12
+ jwtSecretKey: string;
12
13
  };
13
14
  export declare const Collection_Sessions = "user-account--sessions";
14
15
  export declare const Collection_Accounts = "user-account--accounts";
@@ -46,6 +47,11 @@ export declare class AccountsModule_Class extends Module<Config> implements Quer
46
47
  private loginValidate;
47
48
  loginSAML(__email: string): Promise<Response_Auth>;
48
49
  private createSAML;
50
+ private isAuthRequest;
51
+ private verifyAccount;
52
+ validateAuthenticationHeader(request: ExpressRequest, response?: ApiResponse): Promise<Response_Validation>;
53
+ generateJWT(account: UI_Account, sessionId: string): string;
54
+ validateRequest: (request: ExpressRequest, response?: ApiResponse | undefined) => Promise<UI_Account>;
49
55
  validateSession(request: ExpressRequest): Promise<UI_Account>;
50
56
  validateSessionId(sessionId: string): Promise<UI_Account>;
51
57
  private getUserEmailFromSession;
@@ -33,6 +33,7 @@ const backend_1 = require("@intuitionrobotics/firebase/backend");
33
33
  const _imports_1 = require("./_imports");
34
34
  const backend_2 = require("@intuitionrobotics/thunderstorm/backend");
35
35
  const backend_3 = require("@intuitionrobotics/db-api-generator/backend");
36
+ const SecretsModule_1 = require("../../shared/modules/SecretsModule");
36
37
  exports.Header_SessionId = new backend_2.HeaderKey(_imports_1.HeaderKey_SessionId);
37
38
  exports.Collection_Sessions = "user-account--sessions";
38
39
  exports.Collection_Accounts = "user-account--accounts";
@@ -45,6 +46,12 @@ function getUIAccount(account) {
45
46
  class AccountsModule_Class extends ts_common_1.Module {
46
47
  constructor() {
47
48
  super();
49
+ this.isAuthRequest = (request) => request.header(SecretsModule_1.SecretsModule.AUTHENTICATION_KEY) !== undefined;
50
+ this.validateRequest = (request, response) => __awaiter(this, void 0, void 0, function* () {
51
+ if (this.isAuthRequest(request))
52
+ return this.validateAuthenticationHeader(request, response);
53
+ return yield this.validateSession(request);
54
+ });
48
55
  this.TTLExpired = (session) => {
49
56
  const delta = ts_common_1.currentTimeMillies() - session.timestamp;
50
57
  let sessionTTLms = this.config.sessionTTLms.web;
@@ -67,7 +74,7 @@ class AccountsModule_Class extends ts_common_1.Module {
67
74
  const account = yield this.getUserEmailFromSession(session);
68
75
  return { sessionId: session.sessionId, email: account.email, _id: account._id };
69
76
  });
70
- this.setDefaultConfig({ sessionTTLms: { web: ts_common_1.Day, app: ts_common_1.Day } });
77
+ this.setDefaultConfig({ sessionTTLms: { web: ts_common_1.Day, app: ts_common_1.Day }, jwtSecretKey: "TS_AUTH_SECRET" });
71
78
  }
72
79
  __queryRequestInfo(request) {
73
80
  return __awaiter(this, void 0, void 0, function* () {
@@ -267,6 +274,40 @@ class AccountsModule_Class extends ts_common_1.Module {
267
274
  return toRet;
268
275
  });
269
276
  }
277
+ verifyAccount(account) {
278
+ if (!account)
279
+ throw new ts_common_1.BadImplementationException('Missing account in token payload');
280
+ const email = account['email'];
281
+ if (!email || typeof email !== 'string')
282
+ throw new ts_common_1.BadImplementationException('Missing email in token payload');
283
+ const _id = account['_id'];
284
+ if (!_id || typeof _id !== 'string')
285
+ throw new ts_common_1.BadImplementationException('Missing _id in token payload');
286
+ return { _id, email };
287
+ }
288
+ validateAuthenticationHeader(request, response) {
289
+ return __awaiter(this, void 0, void 0, function* () {
290
+ const token = SecretsModule_1.SecretsModule.validateRequest(request);
291
+ const payload = token.payload;
292
+ const isExpired = SecretsModule_1.SecretsModule.isExpired(token);
293
+ const sessionId = payload.sessionId;
294
+ if (!sessionId)
295
+ throw new ts_common_1.BadImplementationException(`Missing session id in token ${JSON.stringify(payload)}`);
296
+ if (!isExpired) {
297
+ const account = payload.account;
298
+ this.verifyAccount(account);
299
+ return account;
300
+ }
301
+ const resp = yield this.validateSession(sessionId);
302
+ // Set in header response
303
+ if (response)
304
+ response.setHeaders({ "jwt": this.generateJWT(resp, sessionId) });
305
+ return resp;
306
+ });
307
+ }
308
+ generateJWT(account, sessionId) {
309
+ return SecretsModule_1.SecretsModule.generateJwt({ account, sessionId, exp: ts_common_1.currentTimeMillies() + (30 * ts_common_1.Minute) }, this.config.jwtSecretKey);
310
+ }
270
311
  validateSession(request) {
271
312
  return __awaiter(this, void 0, void 0, function* () {
272
313
  const sessionId = exports.Header_SessionId.get(request);
@@ -1 +1 @@
1
- {"version":3,"file":"AccountModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/AccountModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccountModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/AccountModule.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intuitionrobotics/user-account",
3
- "version": "0.41.76",
3
+ "version": "0.42.0",
4
4
  "description": "User Account",
5
5
  "keywords": [
6
6
  "IR",
@@ -30,28 +30,28 @@
30
30
  "build": "tsc"
31
31
  },
32
32
  "dependencies": {
33
- "@intuitionrobotics/ts-common": "~0.41.0",
33
+ "@intuitionrobotics/ts-common": "~0.42.0",
34
+ "@types/jws": "^3.2.4",
35
+ "@types/saml2-js": "^1.6.8",
36
+ "jws": "^4.0.0",
34
37
  "moment": "^2.24.0",
35
38
  "saml2-js": "^2.0.5",
36
39
  "xmlbuilder": "^15.1.1"
37
40
  },
38
41
  "devDependencies": {
39
- "@intuitionrobotics/db-api-generator": "~0.41.0",
40
- "@intuitionrobotics/firebase": "~0.41.0",
41
- "@intuitionrobotics/storm": "~0.41.0",
42
- "@intuitionrobotics/testelot": "~0.41.0",
43
- "@intuitionrobotics/thunderstorm": "~0.41.0",
42
+ "@intuitionrobotics/db-api-generator": "~0.42.0",
43
+ "@intuitionrobotics/firebase": "~0.42.0",
44
+ "@intuitionrobotics/storm": "~0.42.0",
45
+ "@intuitionrobotics/testelot": "~0.42.0",
46
+ "@intuitionrobotics/thunderstorm": "~0.42.0",
44
47
  "@types/express": "^4.16.1",
45
48
  "@types/history": "^4.7.2",
46
49
  "@types/react": "^16.8.7",
47
- "@types/request": "^2.48.1",
48
- "@types/saml2-js": "^1.6.8",
49
50
  "express": "^4.16.4",
50
51
  "firebase": "^9.9.1",
51
52
  "firebase-admin": "^11.0.0",
52
53
  "firebase-functions": "^3.22.0",
53
54
  "react": "^16.0.0",
54
- "request": "^2.88.0",
55
55
  "ts-node": "^8.6.2",
56
56
  "tslint": "^5.16.0",
57
57
  "typescript": "~4.1.0",
@@ -0,0 +1,38 @@
1
+ import { Module, ObjectTS } from "@intuitionrobotics/ts-common";
2
+ import { ExpressRequest } from "@intuitionrobotics/thunderstorm/backend";
3
+ import * as jws from "jws";
4
+ import { Algorithm, Signature } from "jws";
5
+ import { CustomException } from "@intuitionrobotics/ts-common/core/exceptions";
6
+ export declare class TokenExpiredException extends CustomException {
7
+ constructor(message: string, cause?: Error);
8
+ }
9
+ declare type Config = {
10
+ secrets?: {
11
+ [k: string]: any;
12
+ };
13
+ authSecretKey: string;
14
+ issuer: string;
15
+ };
16
+ declare type Secret = {
17
+ kid: string;
18
+ value: string;
19
+ };
20
+ export declare class SecretsModule_Class extends Module<Config> {
21
+ private DEFAULT_ISS;
22
+ AUTHENTICATION_PREFIX: string;
23
+ AUTHENTICATION_KEY: string;
24
+ constructor(tag?: string, name?: string);
25
+ getSecret(k: string): Secret;
26
+ getAuthSecret: (kid: string) => Secret;
27
+ private getConfig;
28
+ validateRequestAndCheckExpiration(request: ExpressRequest, keyId?: string): any;
29
+ validateRequest(request: ExpressRequest, keyId?: string): jws.Signature;
30
+ extractAuthToken(request: ExpressRequest): string;
31
+ isExpired: (token: Signature) => boolean;
32
+ getExpiration(token: Signature): any;
33
+ generateJwt: (payload: ObjectTS, kid: string, algorithm?: Algorithm) => string;
34
+ getIss: () => string;
35
+ decodeJwt: (jwt: string) => jws.Signature;
36
+ }
37
+ export declare const SecretsModule: SecretsModule_Class;
38
+ export {};
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SecretsModule = exports.SecretsModule_Class = exports.TokenExpiredException = void 0;
4
+ const ts_common_1 = require("@intuitionrobotics/ts-common");
5
+ const jws = require("jws");
6
+ const JWTBuilder_1 = require("../utils/JWTBuilder");
7
+ const exceptions_1 = require("@intuitionrobotics/ts-common/core/exceptions");
8
+ class TokenExpiredException extends exceptions_1.CustomException {
9
+ constructor(message, cause) {
10
+ super(TokenExpiredException, message, cause);
11
+ }
12
+ }
13
+ exports.TokenExpiredException = TokenExpiredException;
14
+ class SecretsModule_Class extends ts_common_1.Module {
15
+ constructor(tag, name) {
16
+ super(tag, name);
17
+ this.DEFAULT_ISS = "TOOLS";
18
+ this.AUTHENTICATION_PREFIX = "Bearer";
19
+ this.AUTHENTICATION_KEY = "Authorization";
20
+ this.getAuthSecret = (kid) => {
21
+ return this.getSecret(kid);
22
+ };
23
+ this.getConfig = () => {
24
+ if (!this.config)
25
+ throw new ts_common_1.BadImplementationException(`Missing config, check SecretsModule's config`);
26
+ if (!this.config.secrets)
27
+ throw new ts_common_1.BadImplementationException(`Missing 'secrets' key in config, check SecretsModule's config`);
28
+ return this.config.secrets;
29
+ };
30
+ this.isExpired = (token) => {
31
+ return this.getExpiration(token) < ts_common_1.currentTimeMillies();
32
+ };
33
+ this.generateJwt = (payload, kid, algorithm = "HS256") => {
34
+ const secret = this.getAuthSecret(kid);
35
+ return new JWTBuilder_1.JWTBuilder(algorithm)
36
+ // This is a default that can be overwritten by the claims
37
+ .setExpiration(ts_common_1.currentTimeMillies() + ts_common_1.Day)
38
+ .addClaims(payload)
39
+ .setIssuer(this.getIss())
40
+ .setKeyID(secret.kid)
41
+ .build(secret.value);
42
+ };
43
+ this.getIss = () => {
44
+ const issuer = this.config.issuer;
45
+ if (!issuer)
46
+ return this.DEFAULT_ISS;
47
+ return issuer;
48
+ };
49
+ this.decodeJwt = (jwt) => {
50
+ return jws.decode(jwt);
51
+ };
52
+ this.setDefaultConfig({ authSecretKey: "AUTH_SECRET" });
53
+ }
54
+ getSecret(k) {
55
+ var _a, _b;
56
+ const secret = ((_a = this.getConfig()) === null || _a === void 0 ? void 0 : _a[k]) || ((_b = process.env) === null || _b === void 0 ? void 0 : _b[k]);
57
+ if (!secret)
58
+ throw new ts_common_1.BadImplementationException(`Missing secret with key ${k} in SecretsModule`);
59
+ return {
60
+ kid: k,
61
+ value: secret
62
+ };
63
+ }
64
+ validateRequestAndCheckExpiration(request, keyId) {
65
+ const token = this.validateRequest(request, keyId);
66
+ if (this.isExpired(token)) {
67
+ const cause = `The JWT passed is not valid, check. With payload: ${ts_common_1.__stringify(token.payload)}. The JWT passed is expired`;
68
+ throw new TokenExpiredException(cause);
69
+ }
70
+ return token.payload;
71
+ }
72
+ // Specify a kid to force the usage of it
73
+ validateRequest(request, keyId) {
74
+ var _a;
75
+ const authToken = this.extractAuthToken(request);
76
+ const token = this.decodeJwt(authToken);
77
+ const kid = keyId || token.header.kid;
78
+ if (!kid)
79
+ throw new ts_common_1.BadImplementationException("Could not deduce which key to use in order to verify the token, please specify a key ID");
80
+ const secret = this.getAuthSecret(kid);
81
+ const verified = jws.verify(authToken, token.header.alg, secret.value);
82
+ let cause = `The JWT passed is not valid, check. With payload: ${ts_common_1.__stringify(token.payload)}.`;
83
+ if (!verified || !token)
84
+ throw new ts_common_1.BadImplementationException(cause);
85
+ if (!((_a = token.payload) === null || _a === void 0 ? void 0 : _a[JWTBuilder_1.EXPIRES_AT])) {
86
+ cause += ` The JWT is missing the expiration claim`;
87
+ throw new ts_common_1.BadImplementationException(cause);
88
+ }
89
+ return token;
90
+ }
91
+ extractAuthToken(request) {
92
+ const authHead = request.header(this.AUTHENTICATION_KEY);
93
+ if (authHead === undefined)
94
+ throw new ts_common_1.BadImplementationException("Missing Authorization header");
95
+ if (!authHead)
96
+ throw new ts_common_1.BadImplementationException('The Authorization header is empty');
97
+ const parts = authHead.split(" ");
98
+ if (parts.length !== 2 || parts[0] !== this.AUTHENTICATION_PREFIX)
99
+ throw new ts_common_1.BadImplementationException(`The Authorization header is malformed` + "\n"
100
+ + `Value: ${authHead}` + "\n"
101
+ + `Expected Value: ${this.AUTHENTICATION_PREFIX} [token]`);
102
+ const authToken = parts[1].trim();
103
+ if (!authToken)
104
+ throw new ts_common_1.BadImplementationException(`The token provided is empty`);
105
+ return authToken;
106
+ }
107
+ getExpiration(token) {
108
+ let exp = token.payload[JWTBuilder_1.EXPIRES_AT];
109
+ if (!exp)
110
+ return exp;
111
+ const now = ts_common_1.currentTimeMillies();
112
+ const cutOff = 1000000000000; // 3-3-1973 in milliseconds
113
+ const isInSeconds = exp < cutOff;
114
+ if (isInSeconds)
115
+ exp = exp * 1000;
116
+ const year = 365 * ts_common_1.Day;
117
+ if (exp < now - year || exp > now + (year))
118
+ throw new ts_common_1.BadImplementationException(`The JWT passed is not valid. Payload: ${ts_common_1.__stringify(token.payload)}.` +
119
+ `Malformed JWT, expiry date is not valid, check the exp format, assumed to be in ${isInSeconds ? "seconds" : "milliseconds"}`);
120
+ return exp;
121
+ }
122
+ }
123
+ exports.SecretsModule_Class = SecretsModule_Class;
124
+ exports.SecretsModule = new SecretsModule_Class();
125
+ //# sourceMappingURL=SecretsModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecretsModule.js","sourceRoot":"","sources":["../../../src/main/shared/modules/SecretsModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { ObjectTS } from "@intuitionrobotics/ts-common";
2
+ import { Algorithm } from "jws";
3
+ export declare type AlgType = 'alg';
4
+ export declare const ALGORITHM: AlgType;
5
+ export declare const CONTENT_TYPE = "cty";
6
+ export declare const TYPE = "typ";
7
+ export declare const KEY_ID = "kid";
8
+ export declare const ISSUER = "iss";
9
+ export declare const SUBJECT = "sub";
10
+ export declare const EXPIRES_AT = "exp";
11
+ export declare const NOT_BEFORE = "nbf";
12
+ export declare const ISSUED_AT = "iat";
13
+ export declare const JWT_ID = "jti";
14
+ export declare const AUDIENCE = "aud";
15
+ export declare const TYP_DEFAULT: string;
16
+ export declare class JWTBuilder {
17
+ private payload;
18
+ private readonly header;
19
+ constructor(alg: Algorithm);
20
+ addClaims(claims: ObjectTS): this;
21
+ addClaim(key: string, value: any): this;
22
+ addHeader(key: string, value: any): this;
23
+ setAlgorithm: (alg: Algorithm) => this;
24
+ setContentType: (cty: string) => this;
25
+ setType: (typ: string) => this;
26
+ setKeyID: (kid: string) => this;
27
+ setIssuer(iss: string): this;
28
+ setSub(iss: string): this;
29
+ setExpiration(exp: number): this;
30
+ setNotBefore(nbf: string): this;
31
+ setIssuedAt(iat: string): this;
32
+ setJWTID(jti: string): this;
33
+ setAudience(aud: string): this;
34
+ private getIssuer;
35
+ private getAlgorithm;
36
+ private getExpiration;
37
+ private getType;
38
+ private assertAlg;
39
+ build(secret: string): string;
40
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JWTBuilder = exports.TYP_DEFAULT = exports.AUDIENCE = exports.JWT_ID = exports.ISSUED_AT = exports.NOT_BEFORE = exports.EXPIRES_AT = exports.SUBJECT = exports.ISSUER = exports.KEY_ID = exports.TYPE = exports.CONTENT_TYPE = exports.ALGORITHM = void 0;
4
+ const ts_common_1 = require("@intuitionrobotics/ts-common");
5
+ const jws = require("jws");
6
+ const jws_1 = require("jws");
7
+ const SecretsModule_1 = require("../modules/SecretsModule");
8
+ //Header
9
+ exports.ALGORITHM = "alg";
10
+ exports.CONTENT_TYPE = "cty";
11
+ exports.TYPE = "typ";
12
+ exports.KEY_ID = "kid";
13
+ //Payload
14
+ exports.ISSUER = "iss";
15
+ exports.SUBJECT = "sub";
16
+ exports.EXPIRES_AT = "exp";
17
+ exports.NOT_BEFORE = "nbf";
18
+ exports.ISSUED_AT = "iat";
19
+ exports.JWT_ID = "jti";
20
+ exports.AUDIENCE = "aud";
21
+ exports.TYP_DEFAULT = "JWT";
22
+ class JWTBuilder {
23
+ constructor(alg) {
24
+ this.payload = {};
25
+ // End Generic
26
+ this.setAlgorithm = (alg) => {
27
+ this.assertAlg(alg);
28
+ this.header[exports.ALGORITHM] = alg;
29
+ return this;
30
+ };
31
+ this.setContentType = (cty) => {
32
+ this.header[exports.CONTENT_TYPE] = cty;
33
+ return this;
34
+ };
35
+ this.setType = (typ) => {
36
+ this.header[exports.TYPE] = typ;
37
+ return this;
38
+ };
39
+ this.setKeyID = (kid) => {
40
+ this.header[exports.KEY_ID] = kid;
41
+ return this;
42
+ };
43
+ this.assertAlg(alg);
44
+ this.header = {
45
+ [exports.ALGORITHM]: alg
46
+ };
47
+ }
48
+ // Generic
49
+ addClaims(claims) {
50
+ Object.keys(claims).forEach(k => this.addClaim(k, claims[k]));
51
+ return this;
52
+ }
53
+ addClaim(key, value) {
54
+ this.payload[key] = value;
55
+ return this;
56
+ }
57
+ addHeader(key, value) {
58
+ this.header[key] = value;
59
+ return this;
60
+ }
61
+ // Payload
62
+ setIssuer(iss) {
63
+ this.payload[exports.ISSUER] = iss;
64
+ return this;
65
+ }
66
+ setSub(iss) {
67
+ this.payload[exports.SUBJECT] = iss;
68
+ return this;
69
+ }
70
+ setExpiration(exp) {
71
+ this.payload[exports.EXPIRES_AT] = exp;
72
+ return this;
73
+ }
74
+ setNotBefore(nbf) {
75
+ this.payload[exports.NOT_BEFORE] = nbf;
76
+ return this;
77
+ }
78
+ setIssuedAt(iat) {
79
+ this.payload[exports.ISSUED_AT] = iat;
80
+ return this;
81
+ }
82
+ setJWTID(jti) {
83
+ this.payload[exports.JWT_ID] = jti;
84
+ return this;
85
+ }
86
+ setAudience(aud) {
87
+ this.payload[exports.AUDIENCE] = aud;
88
+ return this;
89
+ }
90
+ // End Payload
91
+ getIssuer() {
92
+ return this.payload[exports.ISSUER];
93
+ }
94
+ getAlgorithm() {
95
+ return this.header[exports.ALGORITHM];
96
+ }
97
+ getExpiration() {
98
+ return this.payload[exports.EXPIRES_AT];
99
+ }
100
+ getType() {
101
+ return this.header[exports.TYPE];
102
+ }
103
+ assertAlg(alg) {
104
+ const foundAlg = jws_1.ALGORITHMS.find(a => a === alg);
105
+ if (!foundAlg)
106
+ throw new ts_common_1.BadImplementationException(`Algorithm with name ${alg} is not valid`);
107
+ }
108
+ build(secret) {
109
+ if (!this.getType())
110
+ this.setType(exports.TYP_DEFAULT);
111
+ if (!this.getIssuer())
112
+ // TODO move the config to the module which I need to create
113
+ this.setIssuer(SecretsModule_1.SecretsModule.getIss());
114
+ if (!this.getExpiration())
115
+ throw new ts_common_1.BadImplementationException("Missing expiration, cannot build a valid JWT without this value");
116
+ if (!this.getAlgorithm())
117
+ throw new ts_common_1.BadImplementationException("Missing algorithm, cannot build a valid JWT without this value");
118
+ return jws.sign({ secret, payload: this.payload, header: this.header });
119
+ }
120
+ }
121
+ exports.JWTBuilder = JWTBuilder;
122
+ //# sourceMappingURL=JWTBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JWTBuilder.js","sourceRoot":"","sources":["../../../src/main/shared/utils/JWTBuilder.ts"],"names":[],"mappings":"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"}